C # для JSON не отображается должным образом в поле зрения - PullRequest
10 голосов
/ 05 января 2011

Привет, я пытаюсь отправить строку в представление, которое выглядит как 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 ]

20 голосов
/ 05 января 2011

В своем комментарии ниже вы говорите, что ваше мнение использует @ViewBag.Places

Вы используете бритву? Если так, то синтаксис @ делает то же самое, что и <%: - он кодирует содержимое.

Используйте интерфейс IHtmlString, чтобы избежать этого, либо:

ViewBag.Places = new HtmlString(sJSON);

или

@HtmlString(ViewBag.Places)
5 голосов
/ 01 марта 2014
@Html.Raw(ViewBag.Places)

также работает

1 голос
/ 05 января 2011

ты пробовал?

string sJSON = HttpServerUtility.HmltDecode(oSerializer.Serialize(placeList));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...