.NET MVC / Javascript从动态HTML中转义单引号

时间:2016-07-16 20:54:38

标签: javascript asp.net string quote

我从服务器获取了一些动态HTML,我希望将其放入iframe中。这有效:

document.getElementById('iframe').contentWindow.document.write('@Html.Raw(Data)');

问题是数据(我收到的HTML)可能包含"和'这将与我围绕html数据的人发生冲突。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

我自己解决了这个问题。 我用了@Html.JavaScriptStringEncode :)

答案 1 :(得分:2)

在Razor视图中对JavaScript中的值进行编码的可靠方法是使用Json.Encode()

document.getElementById('iframe')
    .contentWindow.document.write(@Html.Raw(Json.Encode(Data)));

请注意,该值周围没有',因为Json.Encode()会创建有效的JavaScript文字。