I mis en œuvre la technique de template.master décrite par Brad Wilson dans this posting mais j'ai changé la ligne 31 de ses EditorTemplates/Template.master de:MVC2 ValidationMessage en template.master pas rendu
<%= Html.ValidationMessage("", "*") %>
à:
<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName)%>
afin que le texte de validation réel s'affiche à côté des contrôles. Ceci ne rend rien. Si je déplace la même ligne dans le fichier object.ascx, il rend, bien qu'il ne soit pas au bon endroit dans la mise en page. Est-ce que quelque chose avec le cycle de vie des métadonnées ne se produit pas à ce moment précis?
MISE À JOUR
J'ai dans mon object.ascx et il fonctionne.
<%= Html.Editor(prop.PropertyName)%>
<p>
<%=Html.ValidationMessage(prop.PropertyName)%>
</p>
MAJ2
Cela fonctionne dans le modèle:
<%= Html.ValidationMessage("")%>
je crois que la portée du modèle est au niveau de contrôle, pas le niveau de viewmodel, de sorte que le « » a il suffit d'utiliser le modèle de contrôle entier, plutôt que de chercher une propriété dans le viewmodel.
@ Html.ValidationMessage (prop.PropertyName) J'ai travaillé pour moi. comme vous l'avez mentionné dans votre question. :) – Doomsknight