我有以下jquery代码,
var ids = []
var id ={"Param1": 1, "Param2": 2, "Param3": 3}
ids.push(id)
var id ={"Param1": 3, "Param2": 2, "Param3": 6}
ids.push(id)
$.getJSON("/Controller/Action1",
{
str: ids
}
, function (data) {
});
public JsonResult Action1(string[] str)
{
return Json("Success", JsonRequestBehavior.AllowGet);
}
我知道字符串数组不正确。什么是正确的参数类型来获取从jQuery传递的集合。
提前致谢!!
答案 0 :(得分:0)
对于您的Action尝试使用FormCollection而不是查看Key和Item集合
public JsonResult Action1(FormCollection ids)
{
//ids["Param1.[0]"] <--Just off the top of my head, I think this is what the key name would be.
//ids.AllKeys <--Use this to see the actual key names.
}
答案 1 :(得分:0)
您正在传递一个对象的数组,如何在字符串中解析它。
试试这个
创建具有您想要传递的相同属性的类。
public class Test
{
public int Param1{get;set;}
public int Param2{get;set;}
public int Param3{get;set;}
}
Jquery的
var Tests= []
var Test={"Param1": 1, "Param2": 2, "Param3": 3}
Tests.push(id)
var Test={"Param1": 3, "Param2": 2, "Param3": 6}
Tests.push(id)
$.getJSON("/Controller/Action1",
{
Tests: JSON.stringify(Tests)
}
, function (data) {
});
public JsonResult Action1(IList<Test> Tests)
{
return Json("Success", JsonRequestBehavior.AllowGet);
}
答案 2 :(得分:0)
您正在尝试将对象集合发送到控制器,请尝试按照以下步骤实现:
var data = {};
data["ids[0].Param1"] = 1
data["ids[0].Param2"] = 2
data["ids[0].Param3"] = 3
data["ids[1].Param1"] = 3
data["ids[1].Param2"] = 2
data["ids[1].Param3"] = 6
$.getJSON("/Controller/Action1",data
, function (response) {
});
然后在你的控制器中创建一个模型,以便你可以绑定到该模型的集合:
public class MyModel
{
public int Param1{get;set;}
public int Param2{get;set;}
public int Param3{get;set;}
}
public JsonResult Action1(IList<MyModel> ids)
{
return Json("Success", JsonRequestBehavior.AllowGet);
}