Я пытаюсь передать 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,
который является, очевидно, не правильным. Я пропускаю что-то основное?
Метод контроллера Json() возвращает JsonResult, что не то же самое, что строка JSON. JsonResult содержит данные, но эти данные фактически записываются непосредственно в ответ, когда View Engine вызывает JsonResult.ExecuteResult(). Это все, вероятно, больше информации, чем вам нужно - суть в том, что вызов Json() в контроллере не даст вам строку JSON.
Если вы просто хотите превратить ваши данные в строку JSON, вы можете использовать JavaScriptSerializer, который является тем, что метод Json() использует внутри:
JavaScriptSerializer serializer = new JavaScriptSerializer();
ViewData["JsonRegionList"] = serializer.Serialize(jsonRegionList);