2011-01-05 39 views
10

Ciao Sto cercando di inviare una stringa a una vista che sembra JSON.C# to json non viene visualizzato correttamente nella vista

Im invio di un elenco di luoghi:

class Place 
     { 
      public string title { get; set; } 
      public string description { get; set; } 
      public double latitude { get; set; } 
      public double longitude { get; set; } 
     } 

List<Place> placeList = new List<Place>(); 
//add places to PlaceList 

//Then i do this 
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
      string sJSON = oSerializer.Serialize(placeList); 
      ViewBag.Places = sJSON; 

Nella vista la sua uscita rendendo in questo modo però:

[{&quot;title&quot;:&quot;sdf sdfsd sdf sd f&quot;,&quot;description&quot;:&quot;sdf sdf sd fsd sd sdf sdf dssd sdf sd s&quot;,&quot;latitude&quot;:53.740259851464685,&quot;longitude&quot;:-2.4602634343627927}, 

Come faccio a farlo rendere come normale JSON nella vista? meno &quot; ecc.?

risposta

20

Nel vostro commento qui sotto che il vostro punto di vista è utilizzato @ViewBag.Places

Si sta utilizzando rasoio? Se è così, la sintassi @ fa la stessa cosa di <%: - codifica il contenuto.

utilizzare l'interfaccia IHtmlString per evitarlo, quindi o:

ViewBag.Places = new HtmlString(sJSON); 

O

@HtmlString(ViewBag.Places) 
1

hai provato?

string sJSON = HttpServerUtility.HmltDecode(oSerializer.Serialize(placeList)); 
+0

anche io penso che è strano che il ritorno oSerializer.Serialize stringa codificata in html. Come sei sicuro che il rendering nella tua vista non abbia pre-trattamento? –

+0

Ho provato: HttpUtility.HtmlDecode (oSerializer.Serialize (placeList)); - stesso risultato – raklos

+0

nella mia vista ho: "posti": @ ViewBag.Places – raklos

Problemi correlati