使用KeyValuePairs列表作为参数的Ajax调用操作

时间:2017-10-24 12:53:02

标签: c# json asp.net-mvc

我希望简单地对期望Key和Value对List的方法进行AJAX调用,但我不知道如何做到这一点。我尝试了以下方法:

服务器方法:

UpdateBranches(List<KeyValuePair<string, string>> brancheItems)

要发送的数据:

 var brancheItems = [];
 businessActivities.forEach(f =>   
     brancheItems.push({
      Key: f.sbiCode,
      Value: f.sbiCodeDescription
 })

这似乎给了我一组具有键和值属性的对象。 (网络选项卡显示它),但它没有用。我还尝试使用一个属性创建一个对象数组(propertyname是键,value是值):

for (var itemIndex in items[index].businessActivities) {
   var key = items[index].businessActivities[itemIndex].sbiCode;
   brancheItems.push({ 
key: items[index].businessActivities[itemIndex].sbiCodeDescription
        });
    }

请注意,在服务器上,我似乎收到了包含两个属性的3个项目的数组/列表,但属性始终为空。有没有人知道要发送的数据的正确格式

2 个答案:

答案 0 :(得分:0)

我认为您可以像这样简单地创建对象:

var ParamtersContainer = new Object();
ParamtersContainer = {
    "PatientName": 'Alameer',
    "ServiceDate": '12/12/2017',
    "ProviderName": 'ahmed'
};

然后在ajax请求中将其作为数据参数,在c#动作中将其作为字典接收。

答案 1 :(得分:0)

使用类似的东西。

    $.ajax({
        type: 'POST',
        url: url,
        contentType: "application/json",
        data:JSON.stringify( {brancheItems: brancheItems}),
        success: function (data) {
            alert("Succeded");
        }
    });

并使用bracket表示法:

而不是brancheItems.push({ key : value }); 使用

var object = {}; 
object[key] = value;
brancheItems.push(object);