小编典典

从Javascript将KeyValuePair或IDictionary列表传递到Web Api控制器

ajax

我有一个Web API控制器,我想向其发布两个参数。一个是平面整数ID,另一个是IDictionary或类似的等效符号。

[HttpPost]
public void DoStuff(int id, [FromBody]IDictionary<int, int> things)
{
}

var things = new Array();
things.push({ 1: 10 }); // tried things.push({ Key: 1, Value: 10 })
things.push({ 2: 11 });
$.ajax({
    url: '/api/DoStuff?id=' + id,
    data: '=' + JSON.stringify(things), // tried what seems like 100 different things here
    type: 'POST',
    dataType: 'json'
});

无论我尝试在数据参数(data: thingsdata: '=' + things),字典不通过走到API控制器。它为null或具有一个虚假条目({0,0})。

我还尝试过在Uri中发送字典-不行。

如何将字典或键值对发送到api控制器?


阅读 248

收藏
2020-07-26

共1个答案

小编典典

您不需要数组-您需要一个简单的JS对象(映射到字典)。此代码应工作:

var things = {};
things['1'] = 10;
things['2'] = 11;
$.ajax({
    url: '/api/DoStuff?id=' + id,
    data: JSON.stringify(things),
    contentType: 'application/json'
    type: 'POST',
    dataType: 'json'
});
2020-07-26