Отправка JSON выстраивает, чтобы быть полученной как Словарь <строка, строка>

У меня есть метод со следующей подписью:

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

Я пропускаю что-то, чтобы заставить это работать?

6
задан AxelEckenberger 22 March 2010 в 17:20
поделиться

2 ответа

Синтаксическая ошибка в литерале объекта javascript. Две пары ключ / значение в массиве должны быть назначены именованному свойству рядом с «name» (например, «myProperty»).

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

);

5
ответ дан 17 December 2019 в 04:44
поделиться

Связыватель модели по умолчанию поддерживает расширенные сценарии, такие как привязка к спискам и словарям . Для того, чтобы это сработало, вам необходимо отправить следующий запрос:

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

Таким образом, вы можете написать собственное настраиваемое связующее или отформатировать параметры запроса таким образом. Я не уверен, что jQuery поддерживает это из коробки.

0
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: