Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

c# to json not rendering properly in view

Hi Im trying to send a string to a view that looks like json.

Im sending a list of places:

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;

In the view its rendering output like this though:

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

How do i get it to render as normal json in the view? minus &quot;etc?

like image 716
raklos Avatar asked Jan 05 '11 14:01

raklos


3 Answers

In your comment below you say your view is using @ViewBag.Places

Are you using Razor? If so the @ syntax does the same thing as <%: - it encodes the content.

Use the IHtmlString interface to avoid it, so either:

ViewBag.Places = new HtmlString(sJSON);

Or

@HtmlString(ViewBag.Places)
like image 143
Keith Avatar answered Nov 18 '22 08:11

Keith


@Html.Raw(ViewBag.Places)

also works

like image 20
stuartdotnet Avatar answered Nov 18 '22 08:11

stuartdotnet


did you try ?

string sJSON = HttpServerUtility.HmltDecode(oSerializer.Serialize(placeList));
like image 1
Baptiste Pernet Avatar answered Nov 18 '22 07:11

Baptiste Pernet