2009-07-02 6 views
2

In meinem Szenario möchte ich einen Text mit URL-Link innerhalb der Validierungsnachricht anzeigen, die an das Formularelement in der MVC-Ansicht angehängt ist. Ich verwende ValidationExtensions.ValidationMessage Extension-Methode, wie folgt aus:Asp.Net MVC - ValidationMessage() - Wie verhindert man HTML-Escaping?

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

Das Verhalten, das ich zu sehen bin, ist, dass Validierungsnachricht ist HTML entkommen, was mich effektiv verhindert, einen Link zu Nachricht hinzufügen. Gibt es eine Möglichkeit, dieses Verhalten zu umgehen? Meine Fehlermeldungen werden nicht vom Benutzer bereitgestellt, daher denke ich nicht, dass ich mich hier um die Bereinigung der Ausgabe kümmern muss ...

Antwort

3

Ich nehme an, dass seit Html.ValidationMessage eingebaut ist, werden Sie entweder erstellen Ihre eigene Version oder, wenn Sie sich kreativ fühlen, da sie eine Zeichenkette zurückgibt, ordnen Sie diese zu und entzippen Sie dann die Zeichen, die Sie ändern möchten.

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

Dank. Ich habe eine 'UnEscape()' Erweiterungsmethode für String erstellt - und jetzt kann ich sie verwenden, wann immer ich sie brauche. –

3

Sie können die HttpUtility.HtmlDecode (...) -Methode zusammen mit Ihrem Html.ValidationMessage (...) Methode verwenden, um get ‚err getan: D

+0

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