发送JSON阵列被接收作为字典<字符串,字符串>

问题描述:

我有以下签名的方法:发送JSON阵列被接收作为字典<字符串,字符串>

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'); 
    } 
); 

我错过了什么让这个工作?

看看javascript。您正在使用对象表示法,但像使用数组一样使用它。数组中的2个项目应该是对象的属性。

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

);

默认模型联编程序支持高级方案,如绑定到lists and dictionaries。为了使这个工作,你需要发送以下请求:

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

所以,你既可以编写自己的定制粘合剂或以这种方式格式化您的查询参数。我不确定jQuery支持这个开箱即用的功能。