2010-01-27 4 views
0

J'ai du mal à ajouter un message de validation à mon customortemplate personnalisé, c'est la ligne que j'utilise (j'ai essayé de poster le code du template entier mais sans avoir de chance)ValidationMessage n'apparaissant pas dans custom asp.net mvc 2 editortemplate

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

Si je mets le message de validation pour la propriété de modèle en dehors du modèle, cela fonctionne très bien, donc je sais que l'erreur de modélisation existe.

Des idées?

+0

Avez-vous obtenu ce fonctionnement? J'ai le même problème! – Robert

Répondre

0

J'ai une réponse pour vous :)

Vous devez préfixer la clé de votre propriété avec le nom de la propriété dans le modèle.

Par exemple, si votre modèle ressemble à ceci:

public class MyModel 
{ 
    public ChildModel Child { get; set; } 
} 

Et vous voulez ajouter un message d'erreur que le modèle de l'enfant peut voir, vous devez préfixer la clé du message d'erreur comme suit:

ModelState.AddModelError("Child.SomeKey", "Error message"); 

à votre avis modèle de ChildModel, afficher l'erreur comme ceci:

<%= Html.ValidationMessage("SomeKey")%> 
0

J'utilise les helpers html fortement typés.

Exemple

<div class="editor-label"><%= Html.LabelFor(model => model); %></div> 
<div class="editor-field"><%= Html.TextBoxFor(model => model); %></div> 
<div class="editor-error"><%= Html.ValidationMessageFor(model => model); %></div> 

Vous pouvez faire la même chose sans les aides fortement typées en utilisant la propriété Modèle ViewPage/contrôle.

Questions connexes