我正在使用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)