У меня есть метод со следующей подписью:
public ActionResult RenderFamilyTree(string name, Dictionary<string, string> children)
Я пытаюсь назвать его из JavaScript с помощью jQuery как это:
$('#div_render').load(
"<%= Url.Action("RenderFamilyTree") %>",
{
'name': 'Raul',
[
{'key':'key1','value':'value1'},
{'key':'key2','value':'value2'}
]
},
function() {
alert('Loaded');
}
);
Я пропускаю что-то, чтобы заставить это работать?
Синтаксическая ошибка в литерале объекта javascript. Две пары ключ / значение в массиве должны быть назначены именованному свойству рядом с «name» (например, «myProperty»).
$('#div_render').load(
"<%= Url.Action("RenderFamilyTree") %>",
{
name: 'Raul',
myProperty: [
{key:'key1',value:'value1'},
{key:'key2',value:'value2'}
]
},
function() {
alert('Loaded');
}
);
Связыватель модели по умолчанию поддерживает расширенные сценарии, такие как привязка к спискам и словарям . Для того, чтобы это сработало, вам необходимо отправить следующий запрос:
children[0].Key=key1&children[0].Value=value1&
children[1].Key=key2&children[1].Value=value2&
name=Raul
Таким образом, вы можете написать собственное настраиваемое связующее или отформатировать параметры запроса таким образом. Я не уверен, что jQuery поддерживает это из коробки.