ASP.NET MVC - Передайте Строку Json для Просмотра использования ViewData

Я пытаюсь передать Json своему использованию Представления ViewData

Контроллер

ViewData("JsonRegionList") = Json(RegionService.GetActiveRegions())

посмотреть

        $("input#UserRegion").autocomplete({
                source:"<%: ViewData("JsonRegionList").ToString %>",
                minLength: 3,

но проблемой, с которой я сталкиваюсь, является выходной источник, похож

        $("input#UserRegion").autocomplete({
                source:"System.Web.Mvc.JsonResult",
                minLength: 3,

который является, очевидно, не правильным. Я пропускаю что-то основное?

13
задан Chase Florell 26 July 2010 в 02:09
поделиться

1 ответ

Метод контроллера Json() возвращает JsonResult, что не то же самое, что строка JSON. JsonResult содержит данные, но эти данные фактически записываются непосредственно в ответ, когда View Engine вызывает JsonResult.ExecuteResult(). Это все, вероятно, больше информации, чем вам нужно - суть в том, что вызов Json() в контроллере не даст вам строку JSON.

Если вы просто хотите превратить ваши данные в строку JSON, вы можете использовать JavaScriptSerializer, который является тем, что метод Json() использует внутри:

JavaScriptSerializer serializer = new JavaScriptSerializer();
ViewData["JsonRegionList"] = serializer.Serialize(jsonRegionList); 
19
ответ дан 1 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: