相关疑难解决方法(0)

如何将字典作为参数传递给jQuery/Ajax的ActionResult方法?

我正在使用jQuery在ASP.NET MVC中使用Http Post进行Ajax调用.我希望能够传递一个价值词典.

我能想到的最接近的事情是传入一个多维的字符串数组,但实际传递给ActionResult方法的结果是一个包含"key/value"对的字符串连接的单维字符串数组.

例如,下面"values"数组中的第一项包含以下值:

"id,200"
Run Code Online (Sandbox Code Playgroud)

这是我的ActionResult方法的一个例子:

public ActionResult AddItems(string[] values)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

这是我如何从jQuery调用方法的示例:

$.post("/Controller/AddItems",
    {
        values: [
            ["id", "200"],
            ["FirstName", "Chris"],
            ["DynamicItem1", "Some Value"],
            ["DynamicItem2", "Some Other Value"]
        ]
    },
    function(data) { },
    "json");
Run Code Online (Sandbox Code Playgroud)

有谁知道如何将一个Dictionary对象从jQuery传递给ActionResult方法而不是一个数组?

我真的想定义我的ActionResult像这样:

public ActionResult AddItems(Dictionary<string, object> values)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

更新:我尝试在值中传入一个逗号,它基本上只是使得无法使用字符串解析实际解析键/值对.

通过这个:

values: [
    ["id", "200,300"],
    ["FirstName", "Chris"]
]
Run Code Online (Sandbox Code Playgroud)

结果如下:

values[0] = "id,200,300";
values[1] = "FirstName,Chris";
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery actionresult

11
推荐指数
1
解决办法
3万
查看次数

标签 统计

actionresult ×1

ajax ×1

asp.net-mvc ×1

jquery ×1