我从服务器获取了一些动态HTML,我希望将其放入iframe中。这有效:
document.getElementById('iframe').contentWindow.document.write('@Html.Raw(Data)');
问题是数据(我收到的HTML)可能包含"和'这将与我围绕html数据的人发生冲突。有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
@Html.JavaScriptStringEncode
:)
答案 1 :(得分:2)
在Razor视图中对JavaScript中的值进行编码的可靠方法是使用Json.Encode()
:
document.getElementById('iframe')
.contentWindow.document.write(@Html.Raw(Json.Encode(Data)));
请注意,该值周围没有'
,因为Json.Encode()
会创建有效的JavaScript文字。