我有一个接受列表作为参数的 ActionResult 方法:
[HttpPost]
public ActionResult MyMethod (List<ClassA> json)
{
...
}
这会将传入的 json 字符串绑定到已填充的 ClassA 对象的通用列表。
问题是有时传入的 json 只是一个 json 对象,而不是 json 对象数组。
有没有办法抢占这个,所以我可以直接绑定到 ClassA vs List?或者我可以使用其他一些技术吗?
以下是 JSON 的发送方式(作为数组):
var myjsonarray = [{
"ID": "1",
"FirstName": "John",
"LastName": "Doe",
}, {
"ID": "2",
"FirstName": "Jane",
"LastName": "Doe",
}];
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Home/MyPage",
data: JSON.stringify(myjsonarray),
dataType: 'json'
});
以上过程正常。这也有效:
var myjsonarray = [{
"ID": "1",
"FirstName": "John",
"LastName": "Doe",
}];
但是,当我作为未包装在数组中的单个对象发送时:
var myjsonarray = {
"ID": "1",
"FirstName": "John",
"LastName": "Doe",
};
我的 ActionResult 方法参数为空:
json == null