.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 文字。
我从服务器获得了一些动态 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 文字。