2009-11-19 3 views
0

J'ai une action de contrôleur de mise à jour qui vérifie la validation.Html ValidationMessage ne fonctionnait pas depuis la mise à niveau vers ASP.NET MVC 2 Bêta

if (!ModelState.IsValid) return View(InitialiseModel(model)); 

Mon point de vue utilise UIHelpers:

<%=Html.EditorForModel("MyModelTemplate") %> 

J'ai une propriété String dans mon modèle appelé "Titre" qui a l'attribut [Obligatoire]:

[Required] 
[DisplayName("Resource title")] 
public string Title { get; set; } 

Le modèle d'interface utilisateur cette propriété ressemble à ceci:

<%= ViewData.ModelMetadata.IsRequired ? "*" : "" %> 
<label for="<%=ViewData.ModelMetadata.PropertyName %>"> 
    <%=ViewData.ModelMetadata.GetDisplayName() %> 
</label> 
<input type="text" id="<%=ViewData.ModelMetadata.PropertyName%>" 
name="<%=ViewData.ModelMetadata.PropertyName%>" value="<%=Model%>" /> 

<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName, "*") %> 

Le problème est ViewData.ModelMetadata.IsRequired est toujours faux. Et le message de validation n'est jamais affiché. Qu'est-ce que je rate?

+0

Crée-t-il les balises span du validateur dans la source HTML? – RailRhoad

Répondre

0

Peut-être un bug?

De: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

Brad Wilson a dit en réponse à Andrew ...

Je ne crois pas que les ensembles [Obligatoire] isRequired pour être vrai aujourd'hui, qui sonne comme il est probablement un bug. Je vais regarder dedans. Merci!

+0

Merci pour votre réponse Jimmy, très utile, mais je suis toujours confus au sujet de la raison pour laquelle la ligne <% = Html.ValidationMessage (ViewData.ModelMetadata.PropertyName, "*")%> n'affiche pas une erreur de validation ... –

0

Utilisez-vous Ajax.BeginForm ou Html.BeginForm? I just read thi s qui a expliqué mon problème et le vôtre aussi si vous utilisez Ajax.BeginForm ..

Questions connexes