我需要从数据库表中输出我的页面文本.表字段"Text"包含带有html格式标签的文本,例如<p>, <br/>etc ...(在表中未编码!)
当我尝试使用@ Model.Text输出时,我看到编码的html标签,<p>
如何禁用此html-encode.谢谢.
在我的网站上,每个文本都以 UTF-8 格式提供。
由于现在每个浏览器都支持 unicode 字符,我想按原样使用它们。
asp.net 框架通过将任何 unicode 替换为数字字符引用(如á. 参考检查:http : //en.wikipedia.org/wiki/Unicode_and_HTML#HTML_document_characters
当然,通过这种方式,网页可以在最古老的网景中正确呈现,但例如,谷歌分析电子商务模块在理解这些特殊编码的字符时遇到了一些麻烦。
有没有办法全局禁用数字字符引用编码?
例如我想用剃刀写:
<span class="title">@ViewBag.Title</span>
Run Code Online (Sandbox Code Playgroud)
我希望这显示在输出上:
<span class="title">Számítástechnika</span>
Run Code Online (Sandbox Code Playgroud)
不是这个:
<span class="title">Számítástechnika</span>
Run Code Online (Sandbox Code Playgroud)
我不是要禁用 html 编码,因此 Html.Raw 不是解决方案,例如我无法确保 @ViewBag.Title 不会满足以下内容:
<span class="title"><script>alert('injected hahahah');</script></span>
Run Code Online (Sandbox Code Playgroud)
所以我对特殊 html 字符的自动编码感到满意。那不是我想要禁用的。
我不想重组所有代码,我认为应该有一个“全局开关”来禁用在 razor 中使用字符串参数时的这种行为。有没有办法做到这一点?
我也可以明确禁止数字字符引用,例如像new MvcHtmlString(myString, some parameters)?