Я использую jQuery для вызова Ajax с помощью Http Post в ASP.NET MVC. Я хотел бы передать Словарь ценностей.
Самое близкое, что я мог придумать, - это передать многомерный массив строк, но результат, который фактически передается методу ActionResult, представляет собой одномерный массив строк, содержащий конкатенацию строк пары «ключ / значение».
Например, первый элемент в нижеследующем массиве «значений» содержит следующее значение:
"id,200"
Вот пример моего метода ActionResult:
public ActionResult AddItems(string[] values)
{
// do something
}
Вот пример того, как я вызываю метод из jQuery:
$.post("/Controller/AddItems",
{
values: [
["id", "200"],
["FirstName", "Chris"],
["DynamicItem1", "Some Value"],
["DynamicItem2", "Some Other Value"]
]
},
function(data) { },
"json");
Кто-нибудь знает, как передать объект Dictionary из jQuery в метод ActionResult вместо Array?
Я действительно хотел бы определить свой ActionResult следующим образом:
public ActionResult AddItems(Dictionary<string, object> values)
{
// do something
}
Какие-либо предложения?
ОБНОВЛЕНИЕ: я попытался передать запятую внутри значения, и это в основном просто делает невозможным фактический синтаксический анализ пары ключ / значение с помощью синтаксического анализа строки.
Передайте это:
values: [
["id", "200,300"],
["FirstName", "Chris"]
]
приводит к этому:
values[0] = "id,200,300";
values[1] = "FirstName,Chris";