2010-01-01 3 views
1

J'ai une table avec une colonne Int PK et un nom. Je veux les charger dans un objet quelconque et les retourner en utilisant Json() ActionResult dans MVC 2. J'ai du mal à trouver une structure intégrée prise en charge pour la sérialisation qui conserve une structure clé/valeur simple .Comment créer une structure sérialisable MVC 2 Json avec les clés de matrice PK appropriées

En fin de compte, je voudrais faire quelque chose comme:

Function JsonList() As ActionResult 
     Dim Things = New Dictionary(Of Integer, String) 

     Things.Add(0, "Choose One") 
     For Each oThing In Edm.ThingsTable.ToList() 
      Things.add(oThing.id, oThing.name) 
     Next 

     Return Json(Things, JsonRequestBehavior.AllowGet) 
    End Function 

et obtenir quelque chose comme:

{'2':'thing','12':'another thing','929':'yet another thing'} 

J'utilise jQuery Jeditable qui idealement voudrait quelque chose comme:

{'2':'thing','12':'another thing','929':'yet another thing', 'selected':'129'} 

Ce serait génial s'il y avait un objet JSON que je pourrais utiliser comme

oJson.add("bla", "foo") 

Mais je n'ai découvert aucune structure capable de le faire.

Répondre

0

Votre code actuel est presque exactement correct. Juste intead d'un dictionnaire de int, string, il vous faut string, string:

Function JsonList() As ActionResult 
    Dim Things = New Dictionary(Of String, String) 

    Things.Add("0", "Choose One") 
    For Each oThing In Edm.ThingsTable.ToList() 
     Things.add(oThing.id.ToString, oThing.name) 
    Next 

    Return Json(Things, JsonRequestBehavior.AllowGet) 
End Function 

Et cette volonté JSON comme {"0":"Choose One","1":"Choose Two","2":"Choose Three"} généré.

Questions connexes