发送要作为Dictionary <string,string> </string,string>接收的JSON数组

时间:2010-03-22 17:18:30

标签: c# jquery json dictionary

我有一个带有以下签名的方法:

public ActionResult RenderFamilyTree(string name, Dictionary<string, string> children)

我正在尝试使用jQuery从javascript中调用它:

$('#div_render').load(
    "<%= Url.Action("RenderFamilyTree") %>", 
    { 
         'name': 'Raul',
         [
             {'key':'key1','value':'value1'},
             {'key':'key2','value':'value2'}
         ] 
    }, 
    function() {                
        alert('Loaded');
    }
);

我错过了一些让这个工作的东西吗?

2 个答案:

答案 0 :(得分:5)

javascript对象文字中存在语法错误。数组中的两个键/值对应与“name”一起分配给命名属性(例如:“myProperty”)。

$('#div_render').load(
"<%= Url.Action("RenderFamilyTree") %>", 
{ 
     name: 'Raul',
     myProperty: [
         {key:'key1',value:'value1'},
         {key:'key2',value:'value2'}
     ] 
}, 
function() {                
    alert('Loaded');
}

);

答案 1 :(得分:0)

默认模型绑定器支持高级方案,例如绑定到lists and dictionaries。为此,您需要发送以下请求:

children[0].Key=key1&children[0].Value=value1&
children[1].Key=key2&children[1].Value=value2&
name=Raul

因此,您可以编写自己的自定义绑定器或以这种方式格式化查询参数。我不确定jQuery是否支持开箱即用。