2012-05-21 4 views
0

J'ai besoin de savoir s'il y a ValidationMessage ou non. Parce que je veux ajouter "tag
dans le message d'erreur.Asp.Net MVC3 (Razor Viewport), ValidationMessageFor?

comme

@if (Html.ValidationMessageFor(m => m.UserId)){ 
Html.ValidationMessageFor(m => m.UserId) + "<br /> 
} 

le code ci-dessus ne fonctionne pas, tout le monde sait comment il faire le travail?

Merci!

Répondre

2

Vous devez vérifier la ModelState pour cette erreur particulière. Par exemple:

@if (ModelState["UserId"].Errors.Count > 0) { 
    Html.ValidationMessageFor(m => m.UserId) @:<br/> 
} 

Cela pourrait être vraiment moche si vous l'avez partout cependant. Si vous avez besoin de beaucoup, créez une extension Html Helper personnalisée.

+0

Bien, je n'ai jamais vu ça auparavant. Peut être utile dans certains endroits uniques –

1

Si vous avez besoin d'ajouter un balisage à votre message de validation, je vous suggère de créer un message personnalisé Tout ce que vous devez faire est de créer un nouvel assistant et d'encapsuler cette logique dans l'assistant lui-même

somethig comme ci-dessous

public MvcHtmlString MyValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) 
    { 
     //your logic here 

    } 
0

Votre question n'est pas très claire. Veuillez clarifier ce que vous voulez accomplir.

Si vous souhaitez afficher une erreur s'il y en a une et ne pas afficher une erreur si ce n'est pas le cas, vous n'avez pas besoin d'écrire une logique "if()" séparée comme le suggère Mystere Man. Le simple fait d'avoir Html.ValidationMessageFor(m => m.UserId) correctement formaté par CSS CSS et ayant toutes les références appropriées aux scripts requis pour la validation fera l'affaire. Par html correctement formaté, je veux dire avoir des blocs de validation à côté des entrées dans les balises div de sorte que vous n'avez pas besoin de <br> pour les nouvelles lignes.

Questions connexes