在 jquery 中访问在页面中序列化的变量时出现 Json 解析错误 asp.net .cs
Json Parsing error when accessing in jquery of a variable which is serialized in asp.net .cs page
嗨,我正在执行以下代码,我将以下代码保存在单独的 js 文件中,并在所有其他.aspx文件中引用该文件。当我直接将以下代码放在文件脚本部分中时.aspx它可以正常工作,但是当我将其与其他函数一起保存在单独的js文件中时,它无法正常工作
function pageLoad(sender, args) {
var dict = $.parseJSON('<%=DictJson %>');
var data = eval(dict);
}
我在var dict = $.parseJSON('<%=DictJson %>');得到错误。显示的错误Microsoft JScript 运行时错误:引发异常且未捕获,并且正在 json 文件中显示该抛出 } if (!v("json-parse")) { var M = String.fromCharCode, N = { 92: "''", 34: '"', 47: "/", 98: "''u0008", 116: "''t", 110: "'", 102: "''u000c", 114: "''r" }, b, A, j = 函数 () { b = A = w;抛出语法错误();}, q = 函数 () { for (var a = A, f = a.length, c, d, h, k, e; b
我写了 DictJson 是一个解析的字典,我正在其他一些基本页面的后端解析它,每个页面都可以访问它。 解析代码为
public string DictJson
{
get
{
MouseOverFieldDict mdict = (MouseOverFieldDict)(HttpContext.Current.Session["MouseOverFieldDict"]);
JavaScriptSerializer jSer = new JavaScriptSerializer();
return jSer.Serialize(mdict.FieldDict);
}
}
请帮助我解决错误。我不明白为什么它会在脚本中抛出该错误
服务器端表达式 "<%=DictJson %>" 仅在代码隐藏中的可访问成员(属性/字段)的情况下,在.aspx文件中计算。对 JavaScript 文件的请求是一个完全独立的请求,因此它不知道 DictJson。
你仍然可以在你的JavaScript中使用你的函数,但我建议这样的东西:
JavaScript 文件:
function myPageLoad(DictJson) {
var dict = $.parseJSON(DictJson);
var data = eval(dict);
}
代码隐藏(粗略地说,我没有为 c# 设置):
void Page_PreRender(object sender, EventArgs args) {
string scriptName;
string scriptText;
// have jQuery to call the function in your JS with the serialized Dict
scriptText = "$(function(){myPageLoad('" + DictJson + "');});";
scriptName = "onLoadScript";
ClientScriptManager.RegisterStartupScript(Me.GetType(), scriptName, scriptText, True);
}
注册启动脚本文档:http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx
没记错的话,问题是当你将javascript移动到它自己的单独文件中时,javascript不知道如何原生处理"gator"标签(<%=...%>)。 您要么需要在 aspx 页中保持脚本内联,要么需要提出一种机制,以便在进行函数调用时将 DictJson 的值传递给函数调用。
- 如何将JSON结果设置为'src'共'img'以在ASP.NET MVC4中显示图像
- ASP.NET WebApi DateTimeOffset 序列化为 Json/JavaScript (angular2
- 将列表<字符串>转换为客户端 ASP.NET MVC 上的 Json 数组
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 在设置用户后,从 JavaScript JSON 请求中获取 Web 服务 (asmx) ASP.NET Windows
- 当Json Length过长时,对ASP.NET MVC Controller的Ajax调用返回404
- 用asp.net mvc将json数据渲染到网格中
- asp.net mvc操作方法发布除json数据之外的数据
- 使用ASP.Net MVC Web Api将JSON数据导出到Excel工作表
- ASP.NET MVC-自动取消序列化JSON Fetch POST
- 使用JSON的javascript中的ASP.NET按钮单击事件
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- asp.net Jquery.ajax保留JSON.分析意外字符错误
- 使用javascript将JSON对象绑定到asp.net gridview控件
- 当 JSON.stringify 时,ASP.NET MVC 控制器参数的 JSON 为 null
- 将 JSON 文件传递给 Javascript ASP.NET MVC4
- 将 Ajax 的 json 数组发送到 ASP.NET
- Asp.net MVC4 中使用 Json 和 Jquery 的级联下拉列表未填充
- 通过 AJAX 接收 JSON asp.net 问题
- json-asp.net Web服务调用错误