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

.NET MVC /Javascript escape single quotes from dynamic HTML

本文关键字:HTML 转义 单引号 动态 MVC Javascript NET      更新时间:2023-09-26

我从服务器上得到一些动态HTML,我想把它放在iframe中。这项工作:

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

问题是数据(我收到的HTML)可能包含"answers",这将与我的HTML数据相冲突。有什么方法可以解决这个问题吗?

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

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

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

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