Ich habe sicheres / bereinigtes HTML in einer DB-Tabelle gespeichert.
Wie kann ich diesen HTML-Inhalt in einer Razor-Ansicht ausschreiben lassen?
Es entgeht immer Zeichen wie <
und kaufmännisches Und &
.
Ich habe sicheres / bereinigtes HTML in einer DB-Tabelle gespeichert.
Wie kann ich diesen HTML-Inhalt in einer Razor-Ansicht ausschreiben lassen?
Es entgeht immer Zeichen wie <
und kaufmännisches Und &
.
@Html.Raw()
Antworten:
Angenommen, Ihr Inhalt befindet sich in einer Zeichenfolge mit dem Namen
mystring
...Sie können verwenden:
Alternativ können Sie Ihre Zeichenfolge in
HtmlString
einen anderen Typ konvertieren , derIHtmlString
im Modell oder direkt inline implementiert ist, und regulär verwenden@
:quelle
razor
Syntax undHtml.Raw
steht mir definitiv zur Verfügung.In ASP.NET MVC 3 sollten Sie Folgendes tun:
quelle
Sie können verwenden
quelle
Html.Raw()
funktioniert dort nichtManchmal kann es schwierig sein, rohes HTML zu verwenden. Hauptsächlich wegen der XSS-Sicherheitslücke. Wenn dies ein Problem darstellt, Sie aber dennoch rohes HTML verwenden möchten, können Sie die beängstigenden Teile codieren.
Ergebnisse in
quelle
Sie können Ihre Zeichenfolge wie folgt in Ansichtsdaten im Controller einfügen:
Rufen Sie diese Ansichtsdaten dann folgendermaßen auf:
quelle
Neben der Verwendung
@MvcHtmlString.Create(ViewBag.Stuff)
als von Dommer vorgeschlagen, empfehle ich Ihnen auch verwenden AntiXSS Bibliothek als phill vorgeschlagen http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp -net.aspxEs codiert fast alle möglichen XSS-Angriffszeichenfolgen.
quelle
Vollständiges Beispiel für die Verwendung von Vorlagenfunktionen in RazorEngine (z. B. zur E-Mail-Generierung):
quelle