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
Verwenden Sie @Html.Raw(Model.MyData.Address.Replace("\r\n", "<br />"))
Benutzen
@(new HtmlString(@Model.MyData.Address))
Siehe diesen Beitrag: Rendern von HTML als HTML in Razor
Verwenden Sie css, um den Leerraum zu erhalten
Html
<div id="addressLine">
@Model.MyData.Address;
</div>
Css
#addressLine {
white-space: pre;
}
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 )