Javascript数组作为对aspx文件的JQuery$.post调用的参数
这个问题似乎被问了好几次,但我使用的组件组合从未被问过,因此出现了一个新问题: 我目前的问题是,我似乎无法为POST调用提供javascript数组,它总是将数组中的每个条目拆分,并从中生成非唯一的POST参数。这就是我目前拥有的:Javascript数组作为对aspx文件的JQuery$.post调用的参数,javascript,jquery,asp.net,post,Javascript,Jquery,Asp.net,Post,这个问题似乎被问了好几次,但我使用的组件组合从未被问过,因此出现了一个新问题: 我目前的问题是,我似乎无法为POST调用提供javascript数组,它总是将数组中的每个条目拆分,并从中生成非唯一的POST参数。这就是我目前拥有的: var arr = new Array(); // filled with strings var brr = new Array(); // also filled with strings var id = 1; //在这里填充数组,在JS调试中一切看起来都很
var arr = new Array(); // filled with strings
var brr = new Array(); // also filled with strings
var id = 1;
//在这里填充数组,在JS调试中一切看起来都很好,数组填充正确
param2 = {
"type": "getXY",
"firstArray": arr,
"secondArray": brr,
"someID": id
}
$.post("process.aspx", param2, function (result) {
// If successfull, do stuff
}, "json");
这是在Chrome开发工具中发送到aspx表单数据的结果:
type:getXY
arr[]:225
arr[]:226
secondArray[]:Hardware
secondArray[]:Hardware
someID:1
在另一侧,aspx:
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ClearContent();
if (Request.Form["type"] != null)
{
// Determine what kind of data shall be retrieved
switch(Request.Form["type"].ToString())
{
case "getXY":
System.Collections.Generic.List<ResultStuff> result = new System.Collections.Generic.List<ResultStuff>();
JavaScriptSerializer jsonID = new JavaScriptSerializer();
System.Collections.Generic.List<String> assetIDList = jsonID.Deserialize<System.Collections.Generic.List<String>>(Request.Form["firstArray"]);
//more stuff here
Response.Write(result);
break;
default:
Response.Write("Request string invalid.");
break;
}
}
else
{
Response.Write("Request string missing.");
}
}
我也想得到一些结果作为回应,但我从来没有在aspx中对代码进行过测试。我还尝试了Ajax设置中的传统标志,但没有改进。我用simpel数据类型完成了这项工作,效果很好。我做错了什么?
非常感谢。首先,有一个语法错误:firstArray:arr,arr后面应该有一个逗号。你好,SSA,谢谢你的回复,这只是为帖子格式化时的一个输入错误。我删除了一些其他问题。好的,然后尝试使用firstArray:JSON.stringifyarr,secondArray:JSON.stringifybrr,字符串化数组不起作用,但应用到param2对象至少现在参数似乎已正确发送。不过,我必须为此更改contentType:$.ajaxSetup{contentType:'application/json'};-现在我无法访问asp中的参数。。。Request.Form[type]给我空值。