发送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支持这个开箱即用的功能。