8
我有一个简单的模型:如何像asp:Literal一样使用Razor?
public class MyModel
{
public string Text{get;set;}
}
我有一个观点,这使得为MyModel的Text属性:
<p>@Model.Text</p>
如何从喜欢的标签文本渲染html标签?例如,我有文本“<b>Text</b>
”。我想获取标记P内粗体文字作为结果:
文本
但剃刀渲染文本是:
<b>Text</b>
这是一个很好的解决方案,当你想偶尔渲染一些没有HTML编码的内容。当你知道你的模型的一个属性总是HTML内容不应该被自动编码时,你应该制作该属性的IHtmlString类型。因此,如果您将文本更改为IHtmlString而不是字符串,则可以键入@ Model.Text,Razor将正确输出标签。这样,显然某些内容是HTML,应该仔细清理以避免HTML注入攻击。 – 2011-04-04 17:37:01
@anurse:哇,好评。我自己不知道。我将更新答案以添加此信息。 – paracycle 2011-04-05 08:07:18