2010-03-22 15 views
5

Mam metodę z następującym podpisem:Wysyłanie tablicę JSON być odbierane jako Dictionary <string, string>

public ActionResult RenderFamilyTree(string name, Dictionary<string, string> children) 

Próbuję zadzwonić z javascript przy użyciu jQuery tak:

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

Czy brakuje mi czegoś, aby to zadziałało?

Odpowiedz

4

Spójrz na javascript. Używasz notacji obiektowej, ale używasz jej jak tablicy. 2 elementy w tablicy powinny być własnością obiektu.

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

);

0

Domyślny segregator modelu obsługuje zaawansowane scenariusze, takie jak powiązanie z lists and dictionaries. Aby to zadziałało trzeba wysłać następującą prośbę:

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

więc można albo napisać swój własny spoiwo lub sformatować parametrów zapytania w ten sposób. Nie jestem pewien, czy jQuery obsługuje to po wyjęciu z pudełka.

Powiązane problemy