0

只是一个查询,我以前使用@Html.Raw(Item.sometext)过它,它正确解码了 html 标签,我从 remore 源获取了一些 json 格式的数据,但是当显示在页面上时,我发现 Html.raw 没有解码 html 标签。

要解决我使用的问题:

@Html.Raw(HttpUtility.HtmlDecode(Item.sometext))

所以我的问题是,谁能告诉我为什么会这样,因为我很好奇原因。我使用 mvc4 和 asp.net 4.5

谢谢

乔治

4

1 回答 1

3

这是我的回答,试图更好地解释我的意思(在评论中)。

例如,您的 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 方法。

于 2013-04-16T11:41:53.847 回答