Razor、StringBuilder、HTML 换行符?
Razor, StringBuilder, HTML line break?
我遇到了一个让我觉得很傻的问题....给定 Razor 中的以下代码:
@{
...
if (purchasedEvent.Address != null && purchasedEvent.Address != String.Empty){
addressBlock.AppendFormat("{0}<br />", purchasedEvent.Address);
}
...
}
@addressBlock.ToString()
<br />
被视为文字文本(也就是说我最终看到页面上呈现了类似 123 Cool Street<br />Anytown...
的内容。将代码(返回)更改为 addressBlock.AppendLine(purchasedEvent.Address)
不会也没有任何好处(呈现 127 Cool Street Anytown...
。我需要做什么才能使 Razor 引擎遵守该换行符?
您需要使用 Html.Raw
。引用文档:"Returns markup that is not HTML encoded."
所以像
@html.Raw(addressBlock.ToString())
原因是 MVC 假设您提供的是您希望看到的文本,因此 HTML 对其进行了编码。 Raw
允许您告诉它不要那样做。
我遇到了一个让我觉得很傻的问题....给定 Razor 中的以下代码:
@{
...
if (purchasedEvent.Address != null && purchasedEvent.Address != String.Empty){
addressBlock.AppendFormat("{0}<br />", purchasedEvent.Address);
}
...
}
@addressBlock.ToString()
<br />
被视为文字文本(也就是说我最终看到页面上呈现了类似 123 Cool Street<br />Anytown...
的内容。将代码(返回)更改为 addressBlock.AppendLine(purchasedEvent.Address)
不会也没有任何好处(呈现 127 Cool Street Anytown...
。我需要做什么才能使 Razor 引擎遵守该换行符?
您需要使用 Html.Raw
。引用文档:"Returns markup that is not HTML encoded."
所以像
@html.Raw(addressBlock.ToString())
原因是 MVC 假设您提供的是您希望看到的文本,因此 HTML 对其进行了编码。 Raw
允许您告诉它不要那样做。