asp.net mvc - 由于 JSON 字符串中的 HTML 实体而导致 JavaScript 崩溃
asp.net mvc - JavaScript crashing due to HTML entities in JSON string
我正在使用NewtonSoft.Json.JsonConvert.SerializeObject()
将 ASP.NET 字典对象序列化为JSON字符串。然后,我通过 ViewBag 将此字符串传递给我的 MVC View。
当我在我的 MVC Razor by Razor 语法中尝试将 JSON 字符串从 ViewBag 加载到 JavaScript 变体中时,由于语法错误,我的 JavaScript 崩溃了。当我检查源代码时,我发现:
var hf = {"Test0":65,"Test1":23,"Test2":43,"Test3":6,"Test4":31,"Test5":78,"Test6":1,"Test7":53,"Test8":74,"Test9":54};
这是我在视图中加载 ViewBag 内容的逻辑:
@section RenderChart
{
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
function drawChart() {
var hf = @ViewBag.ChartJsonData;
由于某种原因,我的 JSON 字符串正在被 HTML 编码。我尝试在运行它后将其传递到 ViewBag 中Server.HtmlDecode()
但这没有帮助。有谁知道如何解码这个字符串或将其传递给我的 MVC 视图中的 JavaScript,而无需将其转换为 HTML 实体?
如果每个字符串与@
一起输出,则 Razor 会自动对每个字符串进行 HTML 编码。
如果你不想要HTML编码,你需要用Html.Raw包装你的字符串:
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
function drawChart() {
var hf = @Html.Raw(ViewBag.ChartJsonData)
}
</script>
相关文章:
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 有更好的方法吗?(递归解析HTML unicode实体)
- javascript将html实体条目发布后的下一个字母大写
- 如何转义字符串中的html实体
- 使用Angular在HTML中呈现HTML实体字符串
- 使用javascript将html实体替换为文本
- 使用javascript删除特定HTML实体(breadcrumb)的最后一个实例
- 如何将jquery上的html实体ajax传递给java
- JavaScript:在 XMLSerializer 错误地解析实体后,用 html 160 实体替换三个空格
- 将jsondecoded字符串中的js-eescaped-char(或hex-char?)转换为php中的html实体
- 如何将ngOptions与包含HTML实体的字符串一起使用
- jquery-ui自动完成选择菜单html实体(符号和引号)
- 是否可以通过javascript将@font face html实体输入到输入中
- 具有挖空功能的 HTML 实体
- 在 JavaScript 中准确取消转义 HTML 实体
- 使用 JQuery 插入 HTML 字符实体
- 何时应使用与号 实体 (&)不在 HTML 链接中使用
- 带有 HTML 实体的输出值
- 替换字符串中的 HTML 实体,避免使用
标记
- 如何编码 html 标签实体 - JavaScript