使用 AJAX 调用接收到控制器后数组变空
Array becoming empty after receiving into controller with AJAX call
我有一个名为 SOMEOBJECT 的 class 包含名称 Extras 的列表。
我正在尝试通过 AJAX 调用将数据传递到我的控制器中。
在 MVC 控制器接收到的数据中,数组显示了正确的长度,但数组对象中的整个数据都是空的。
有解决办法吗?
我通过 AJAX 调用传递 class SOMEOBJECT 的对象是这样的:
我通过 F12 DEV 工具 FORM DATA
获取了它
chk1Checked:false
chk2Checked:true
chk3Checked:true
Extras[0][id]:COMP1
Extras[0][itemType]:DROPDOWN
Extras[0][itemId]:111
Extras[0][itemValue]:EVAL1
Extras[1][id]:COMP2
Extras[1][itemType]:DROPDOWN
Extras[1][itemId]:112
Extras[1][itemValue]:EVAL2
我能够在我的控制器中看到长度为 2 的 'Extras' 变量,但内部数据为 NULL。
说你有这样的额外 class
public class Extra
{
public int Id { get; set; }
public int ItemId { get; set; }
public string ItemType { get; set; }
public string ItemValue { get; set; }
}
尝试检索具有匹配 属性 名称的列表..
public ActionResult YourAction(List<Extra> extras, bool chk1Checked, //...
数据对象 post 通过 Ajax 应该看起来像这样
{
"Extras": [{
"Id": 1,
"ItemId": 1,
"ItemType": "foo",
"ItemValue": "bar"
},
{
"Id": 2,
"ItemId": 2,
"ItemType": "whatever",
"ItemValue": ""
}]
}
我有一个名为 SOMEOBJECT 的 class 包含名称 Extras 的列表。
我正在尝试通过 AJAX 调用将数据传递到我的控制器中。 在 MVC 控制器接收到的数据中,数组显示了正确的长度,但数组对象中的整个数据都是空的。
有解决办法吗?
我通过 AJAX 调用传递 class SOMEOBJECT 的对象是这样的: 我通过 F12 DEV 工具 FORM DATA
获取了它chk1Checked:false
chk2Checked:true
chk3Checked:true
Extras[0][id]:COMP1
Extras[0][itemType]:DROPDOWN
Extras[0][itemId]:111
Extras[0][itemValue]:EVAL1
Extras[1][id]:COMP2
Extras[1][itemType]:DROPDOWN
Extras[1][itemId]:112
Extras[1][itemValue]:EVAL2
我能够在我的控制器中看到长度为 2 的 'Extras' 变量,但内部数据为 NULL。
说你有这样的额外 class
public class Extra
{
public int Id { get; set; }
public int ItemId { get; set; }
public string ItemType { get; set; }
public string ItemValue { get; set; }
}
尝试检索具有匹配 属性 名称的列表..
public ActionResult YourAction(List<Extra> extras, bool chk1Checked, //...
数据对象 post 通过 Ajax 应该看起来像这样
{
"Extras": [{
"Id": 1,
"ItemId": 1,
"ItemType": "foo",
"ItemValue": "bar"
},
{
"Id": 2,
"ItemId": 2,
"ItemType": "whatever",
"ItemValue": ""
}]
}