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

本文关键字:HTML 字符串 Razor | 更新日期: 2023-09-27 18:33:05

我正在尝试从我的模型中呈现一个地址。该字符串包含我用中断标记替换的换行符。虽然,它在页面上呈现为字符串而不是 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

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

使用

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

使用

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

它更安全,因此您可以避免潜在的 xss 攻击

请参阅此帖子:在 Razor

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

CSS

#addressLine {
  white-space: pre;
}

若要在 blazor 上呈现 HTML,可以使用 MarkupString=> @((MarkupString)这里你的字符串)这会将字符串呈现为 HTML

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

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

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