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

.NET MVC /Javascript escape single quotes from dynamic HTML

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

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

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

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

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

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

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