2011-01-05 29 views
10

Hola estoy tratando de enviar una cadena a una vista que se parece a json.C# a json no se representa correctamente en la vista

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; 

En la vista de su salida de representación como esto sin embargo::

el envío de una lista de lugares Im

[{&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}, 

¿Cómo puedo conseguir que se hacen JSON de forma normal en la vista? menos &quot;, etc.?

Respuesta

20

En su comentario a continuación le dicen que su vista está utilizando @ViewBag.Places

¿Está utilizando la maquinilla de afeitar? Si es así, la sintaxis @ hace lo mismo que <%: - codifica el contenido.

utilizar la interfaz IHtmlString para evitarlo, así que o bien:

ViewBag.Places = new HtmlString(sJSON); 

O

@HtmlString(ViewBag.Places) 
1

¿lo intentó?

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

También creo que es extraño que el regreso oSerializer.Serialize html cadena codificada. ¿Como seguro que el renderizado en su vista no tiene pretratamiento? –

+0

Intenté: HttpUtility.HtmlDecode (oSerializer.Serialize (placeList)); - El mismo resultado – raklos

+0

en mi opinión tengo: "lugares": @ ViewBag.Places – raklos

Cuestiones relacionadas