2009-07-02 4 views
2

Dans mon scénario, j'aimerais afficher un texte avec un lien URL dans le message de validation joint à l'élément de formulaire dans la vue MVC. J'utilise la méthode d'extension ValidationExtensions.ValidationMessage, comme ceci:Asp.Net MVC - ValidationMessage() - comment empêcher l'échappement HTML?

<%=Html.ValidationMessage(Model.Name) %> 

Le comportement que je vois est ce message de validation est HTML échappé, ce qui me empêche effectivement d'ajouter un lien vers un message. Y at-il un moyen de contourner ce comportement? Mes messages d'erreur ne sont pas fournis par l'utilisateur, donc je ne pense pas que je dois m'inquiéter de la désinfection de sortie ici ...

Répondre

3

Je suppose que depuis que Html.ValidationMessage est intégré, vous allez soit créer votre propre version, ou si vous vous sentez créatif, car il renvoie une chaîne, assignez-la et effacez les caractères que vous voulez changer.

string validation = Html.ValidationMessage(Model.Name); 
validation = Regex.Replace(validation, "&gt;", "<"); 
//etc... 
+0

Merci. J'ai créé une méthode d'extension 'UnEscape()' pour la chaîne - et maintenant je peux l'utiliser quand j'en ai besoin. –

3

Vous pouvez utiliser la méthode HttpUtility.HtmlDecode (...) ainsi que votre méthode Html.ValidationMessage (...) pour obtenir « err fait: D

+0

@ Html.Raw (HttpUtility.HtmlDecode (Html.ValidationMessageFor (x => x.Name) .ToHtmlString())); – George

Questions connexes