我有以下MVC操作:
public ActionResult TestAction(string a, List<string> b, List<string> c, List<string> d)
以及以下Javascript代码:
var data = {
a: "Hello",
b: ["World"],
c: [],
d: null
};
$.ajax({
url: "TestAction",
dataType: "json",
type: "GET",
//Ajax events
success: function (data) {
return;
},
// Form data
data: data,
traditional: true, // Needed for passing array in data
cache: false,
async: true,
contentType: "application/json; charset=utf-8"
});
当我查看服务器端收到的值时,a
和b
都会产生预期值:
a == "Hello"
b == ["World"]
但是,c
和d
的值让我感到困惑:
c == null // expected []
d == [""] // expected null or []
我想知道是否有人可以解释发生了什么。为什么空数组反序列化为null
,为什么null
反序列化为包含单个默认值的集合?