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