HTML 编码字符串 - ASP.NET Web 窗体 VS Razor 视图引擎
Posted
技术标签:
【中文标题】HTML 编码字符串 - ASP.NET Web 窗体 VS Razor 视图引擎【英文标题】:HTML Encoding Strings - ASP.NET Web Forms VS Razor View Engine 【发布时间】:2011-05-09 13:52:51 【问题描述】:我还不太确定这是如何工作的……正在尝试查找文档。
在我现有的应用程序中,我有两种不同的方式在视图中呈现字符串
<%: model.something %>
<!-- or -->
<%= model.something %>
第一个是html编码的,第二个不是。
Razor 中是否有类似的简短内容?我只能找到这个,这是编码版本。
@model.something
【问题讨论】:
【参考方案1】:我想最好的方法是使用 Raw 扩展方法:@Html.Raw(Model.Something)
【讨论】:
我收到了一封来自 Marcind 的电子邮件,说我们实际上应该使用它。【参考方案2】:@Model.Something
自动进行 HTML 编码。如果您想避免 HTML 编码(并且只有在您完全确定自己在做什么的情况下才想要这样做),您可以使用 @MvcHtmlString.Create(Model.Something)
(基本上所有实现 IHtmlString 的东西都不会被编码)。 Phil Haack blogged 关于 Razor 视图引擎语法。
【讨论】:
很酷,谢谢。你知道他们是否正在研究一种更短的语法来发送未编码的字符串吗?像@=Model.Something
这样的东西会很好。并不是说这是正确的方法,只是一些想法。
我们正在为 Razor v2 寻找类似的东西。
当它实现时我会欣喜若狂。事实上,如果能够在伙伴类中设置它,这样它就可以设置并忘记。 <DisableHtmlEncode()>
为@Html.EditorFor()
+1 表示IHtmlString
,但不是答案。我更喜欢@Magnus 的答案是@Html.Raw(Model.Something)
我刚收到 Marcind 的一封电子邮件,说我们实际上应该使用 @Html.Raw()
以上是关于HTML 编码字符串 - ASP.NET Web 窗体 VS Razor 视图引擎的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net 中调用需要轮询的 Web 服务的最佳编码模式是啥?