如何将ASP.NET MVC视图中的JSON数据传递给JavaScript使用
Razor视图输出JSON到JS报错的解决方法
报错原因
Razor视图默认对@语法输出的字符串做HTML安全转义,你从后端序列化输出的JSON中的双引号"会被转义为HTML实体",导致JSON结构被破坏,所以执行JSON.parse时会抛出语法错误:
Uncaught SyntaxError: expected property name, got '&'
解决方法
使用@Html.Raw()方法告诉Razor不要转义这段内容,直接输出原始JSON字符串。由于服务端已经序列化出了合法的JSON结构,不需要额外调用JSON.parse,直接赋值给JavaScript变量即可:
var data = @Html.Raw(Model.JsonNotifications);
注意事项
如果你的JSON数据包含用户输入的不可信内容,直接使用@Html.Raw()可能存在XSS风险,建议先对序列化的内容做安全过滤再输出。
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

