ASP MVC post Dictionary <int,int =“”>

时间:2015-08-04 09:28:26

标签: javascript c# jquery ajax asp.net-mvc

我需要将字典发布到服务器。我的代码工作正常。

服务器端:

[HttpPost]
public JsonResult SomeMethod(Dictionary<string, string> someData) {
    SomeAction();
    return null;
}

客户端:

postMethod = function() {
    var someData = {};
    someData["1"] = "1";
    someData["2"] = "2";
    $.ajax({
        url: '/SomeMethod/',
        type: 'POST',
        traditional: true,
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({
            someData: someData
        }),
    });
    return false;
};

但是,如果我将控制器方法中someData的类型更改为Dictionary<int, int>并尝试传递

someData[1] = 1;
someData[2] = 2;
控制器方法中的

someData为空。

为什么呢?传递字符串字典和整数字典有什么区别?

1 个答案:

答案 0 :(得分:0)

You can try using Array ..

var someData = new Array();
someData.key1 = 1;
someData.key2 = 2;

$.ajax({
    url: '/SomeMethod/',
    type: 'POST',
    traditional: true,
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({
        someData: someData
    }),
});