c#使json无法在视图中正确呈现

时间:2011-01-05 14:57:17

标签: c# asp.net-mvc json

您好我正在尝试将字符串发送到看起来像json的视图。

我发送了一个地方列表:

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;

在视图中它的渲染输出如下:

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

如何在视图中将其渲染为普通的json?减去&quot;等?

3 个答案:

答案 0 :(得分:20)

在下面的评论中,您说您的观点正在使用@ViewBag.Places

你在使用Razor吗?如果是这样,@语法与<%:的作用相同 - 它会对内容进行编码。

使用IHtmlString界面来避免它,所以:

ViewBag.Places = new HtmlString(sJSON);

@HtmlString(ViewBag.Places)

答案 1 :(得分:5)

@Html.Raw(ViewBag.Places)

也有效

答案 2 :(得分:1)

你尝试过吗?

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