这个问题好像被问了好几次,但从来没有使用我正在使用的组件组合,因此是一个新问题: 我目前的问题是我似乎无法向POST调用提供javascript数组,它总是将数组中的每个条目拆分起来,并从中获取非唯一的POST参数。这就是我目前所拥有的:
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");
这是发送到aspx的结果(Chrome开发工具中的表单数据):
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中的代码。我也尝试过ajaxSetup中的传统标志,但它没有改进。我用simpel数据类型做了这个,效果很好。我究竟做错了什么? 非常感谢。