将JSON数组发送以便接收为Dictionary<string,string>。

6

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

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个回答

5

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

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

);


0

默认的模型绑定器支持高级场景,例如绑定到列表和字典。为了使其工作,您需要发送以下请求:

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

所以你可以编写自己的定制绑定器或者按照这种方式格式化查询参数。我不确定 jQuery 是否原生支持此功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接