Asp.net mvc 3 使用MVC Razor的意外行为';编码Html帮助程序
我试图通过Razor视图向浏览器显示文字HTML 我在代码中有类似的内容:Asp.net mvc 3 使用MVC Razor的意外行为';编码Html帮助程序,asp.net-mvc-3,razor,encode,Asp.net Mvc 3,Razor,Encode,我试图通过Razor视图向浏览器显示文字HTML 我在代码中有类似的内容: @Html.Encode("<!-- foo -->") 但相反,它又回来了 &lt;!-- foo --&gt; 似乎编码辅助程序对字符串进行了两次编码 因此,为了获得我想要的输出,我必须像这样用原始辅助对象包装编码辅助对象 @Html.Raw(Html.Encode("<!-- foo -->")) @Html.Raw(Html.Encode(“”) 我
@Html.Encode("<!-- foo -->")
但相反,它又回来了
&lt;!-- foo --&gt;
似乎编码辅助程序对字符串进行了两次编码
因此,为了获得我想要的输出,我必须像这样用原始辅助对象包装编码辅助对象
@Html.Raw(Html.Encode("<!-- foo -->"))
@Html.Raw(Html.Encode(“”)
我是MVC/Razor的新手,所以这种行为让我有点困惑,也不确定我对Html.Encode应该如何运行的期望是否正确
向前看,当我想将字符串编码为Html时,我是否应该接受它并养成用Html.Raw包装Html.Encode的习惯?在Razor中编码HTML字符串有“更好”的方法吗?操作符已经在Razor中编码HTML(除非参数是实例)。因此,您可以尝试:
@("<!-- foo -->")
@syntax执行HTML编码。通过使用@Html.Encode,您可以手动编码,然后@Encode会对您已经编码的内容进行编码 所以,要想得到你想要的,只需做
@("<!-- foo -->")
@(“”)
<!-- foo -->
@("<!-- foo -->")