我试图通过我的Razor View向浏览器显示文字HTML。
我在代码中有这样的东西:
@Html.Encode("<!-- foo -->")
我期待Html.Encode助手返回
<-- foo -->
但相反,它会返回
&lt;!-- foo --&gt;
似乎Encode助手对字符串进行了两次编码。
所以,为了得到我想要的输出,我必须用这样的Raw助手包装Encode助手
@Html.Raw(Html.Encode("<!-- foo -->"))
我是MVC / Razor的新手,所以这种行为让我有点困惑,也不确定我对Html.Encode 的行为方式的期望是否正确。< / p>
向前推w / Razor,当我想将字符串编码为HTML时,我应该吮吸它并养成用Html.Raw包装Html.Encode的习惯吗?是否有一种“更好”的方法来编码Razor中的HTML字符串?
答案 0 :(得分:4)
@语法执行HTML编码。通过使用@ Html.Encode,您可以手动编码,然后@编码您已编码的内容。
所以,为了得到你想要的东西,只需做
@("<!-- foo -->")
答案 1 :(得分:2)