在C#Razor中将字符串呈现为HTML

时间:2014-12-04 01:28:25

标签: c# html asp.net-mvc razor

我正在尝试从我的模型中渲染地址。该字符串包含我用break标记替换的换行符。虽然,它在页面上呈现为字符串而不是HTML。如何强制我的字符串呈现为HTML?

尝试:

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

页面上的结果:

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

应显示为:

Address Top
Street Name
City
PostCode

4 个答案:

答案 0 :(得分:29)

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

答案 1 :(得分:8)

使用

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

看这篇文章: Rendering HTML as HTML in Razor

答案 2 :(得分:3)

使用css保留空白区域

HTML

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

的CSS

#addressLine {
  white-space: pre;
}

答案 3 :(得分:1)

您应该使用CSS空白属性而不是它。 有关详细信息,请访问http://www.w3schools.com/cssref/pr_text_white-space.asp

它还可以帮助您避免跨站点脚本(http://en.wikipedia.org/wiki/Cross-site_scripting