只是一个查询,我之前使用过@Html.Raw(Item.sometext)
并且正确解码了html标签,我从jore格式的remore源获取了一些数据,但是当我在页面上显示时发现了Html.raw没有解码html标签。
解决我使用过的问题:
@Html.Raw(HttpUtility.HtmlDecode(Item.sometext))
所以我的问题是,有人可以告诉我为什么会这样,因为我很好奇它的原因。我正在使用mvc4和asp.net 4.5
由于
乔治
答案 0 :(得分:3)
这是我的答案,试图更好地解释我的意思(在评论中)。
您的JSON格式化为例如(您提供的),如下所示:
<p><b>Location. <\/b> <br \/>...
但是,这不是有效的HTML。注意用于斜杠“/”的转义字符。因此,如果您将此值传递给Html.Raw
,它将(应该)输出它,但它不是有效的HTML,因此不太可能正确显示(如果它显示任何内容)。
可以使用Html.Decode
修复此转义字符问题,这将有效地返回以下内容:
<p><b>Location. </b> <br />...
这是有效的HTML,因此可以毫无问题地传递给Html.Raw
注意:Html.Raw
不进行任何编码/解码,实际上它明确指示不应对提供的值进行编码,因为它已经是原始HTML。这是confirmed here:
当指定的文本表示实际的HTML时,请使用Raw方法 不应编码的片段以及要渲染为的片段 标记为HTTP响应。