web-dev-qa-db-ger.com

Rendern Sie einen String als HTML in C # Razor

Ich versuche, eine Adresse aus meinem Modell zu rendern. Die Zeichenfolge enthält Zeilenumbrüche, die ich durch ein break-Tag ersetze. Es wird zwar auf der Seite als Zeichenfolge und nicht als HTML dargestellt. Wie erzwinge ich, dass mein String stattdessen als HTML dargestellt wird?

Versuch:

<span id="addressLine">
    @Model.MyData.Address.Replace("\r\n", "<br />");
</span>

Ergebnis auf Seite:

Address Top<br />Street Name<br />City<br />PostCode

Sollte angezeigt werden als:

Address Top
Street Name
City
PostCode
17
Fizzix

Verwenden Sie @Html.Raw(Model.MyData.Address.Replace("\r\n", "<br />"))

23
dom

Benutzen

@(new HtmlString(@Model.MyData.Address))

Siehe diesen Beitrag: Rendern von HTML als HTML in Razor

6
cnom

Verwenden Sie css, um den Leerraum zu erhalten

Html

<div id="addressLine">
  @Model.MyData.Address;
</div>

Css

#addressLine {
  white-space: pre;
}
2
user3559349

Sie sollten stattdessen die CSS-Eigenschaft whitespace verwenden. Weitere Informationen erhalten Sie unter http://www.w3schools.com/cssref/pr_text_white-space.asp

Es hilft auch, Cross-Site-Scripting zu vermeiden ( http://en.wikipedia.org/wiki/Cross-site_scripting )

1
Thiago