Я использую ASP.NET MVC и пытаюсь создать фрагмент javascript как часть просмотр рендеринга. У меня есть модель, которая предоставляет массив простых типов, и я хотел бы сгенерировать эквивалентный массив javascript / json в представлении, чтобы я мог действовать на нем с помощью jQuery. Итак, учитывая следующую модель:
public class Info {
public string Name {get;set;}
public int ID {get; set;}
}
public class InfoModel{
public Info[] InfoList {get;set;}
}
... Я прошел часть пути, но, похоже, борется с кодированием. Этот код в представлении:
<script>
var list = <%: HtmlExtension.ToJson(Model.InfoList) %>;
</script>
(где ToJson инкапсулирует преобразование в строку с помощью JavaScriptSerializer) выводит некоторые ошибки кодирования:
var info = [{"Name":"Low End","ID":1}];
.. это не то, что я искал. Я мог бы сделать это:
var info = <% Response.Write(HtmlExtension.ToJson(Model.InfoList)); %>;
, который работает, но не выглядит таким блестящим. Должен ли я явно игнорировать кодировку, как показано (вывод нормальный, а не сгенерированный пользователем, поэтому это может не быть проблемой) или мне не хватает чего-то еще, что делает его менее классическим asp?