【发布时间】:2011-11-06 02:02:10
【问题描述】:
.NET 4、VS 2010、C#、MVC 3。
在我的资源文件中,我有:
First line.<p />Second line.
我正在通过 Razor 从视图中读取它:
@Translations.Example
但我的 p 仍然是 p - 换句话说,它们不会被呈现为 HTML。
为什么?
【问题讨论】:
-
这是一个很好的观点,出于安全原因,默认情况下内容呈现编码。这样可以避免很多 JS 代码注入攻击。当您使用@Html.Raw 时,您决定呈现 HTML 原始内容......然后您还确保呈现的 HTML 是安全的。相比之下,如果默认情况下未对渲染进行编码,则每次用户输入内容时,您都必须确保内容是安全的
-
基本上,只有在知道内容安全时才调用 Html.Raw。
标签: c# html asp.net-mvc resources razor