Json反序列化意外的边缘情况

时间:2015-10-09 09:12:09

标签: javascript json ajax asp.net-mvc

我有以下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"
});

当我查看服务器端收到的值时,ab都会产生预期值:

a == "Hello"
b == ["World"]

但是,cd的值让我感到困惑:

c == null // expected []
d == [""] // expected null or []

我想知道是否有人可以解释发生了什么。为什么空数组反序列化为null,为什么null反序列化为包含单个默认值的集合?

0 个答案:

没有答案