【问题标题】:Sending a JSON array to be received as a Dictionary<string,string>发送要作为 Dictionary<string,string> 接收的 JSON 数组
【发布时间】:2011-01-30 11:01:47
【问题描述】:

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

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

我是否缺少一些东西来让它工作?

【问题讨论】:

    标签: c# jquery json dictionary


    【解决方案1】:

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

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

    );

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-03-01
        • 2015-03-07
        • 1970-01-01
        • 2020-05-06
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多