Книга: ASP.NET MVC Framework

JsonResult

JsonResult

JsonResult — это стандартная возможность механизма MVC возвращать результат на запрос пользователя в виде JSON-данных. JSON — это формат данных, название которого расшифровывается как JavaScript Object Notation или объектная нотация JavaScript. Хотя в названии присутствует слово JavaScript, формат данных JSON языконезависимый и может быть использован при разработке на любом языке.

Примечание

JSON является альтернативой другому формату данных — XML, но по сравнению с XML JSON более короткий, поэтому JSON получил распространение при совместном использовании с механизмом Ajax, когда размер передаваемых данных может иметь большое значение.

*********************************

Класс JsonResult содержит несколько свойств, для более гибкой настройки возвращаемого результата:

? ContentEncoding — устанавливает значение HTTP-параметра ContentEncoding, который определяет кодировку возвращаемого результата;

? ContentType — устанавливает значение HTTP-параметра ContentType, если не указано, то по умолчанию устанавливается в application/json;

? Data — любые данные, которые могут быть сериализованы в формат JSON с помощью класса JavaScriptSerializer.

Использовать JsonResult для возвращения результата в виде JSON-данных очень просто, для этого в контроллере существует стандартный метод Json, который принимает все параметры JsonResult и возвращает готовый результат. Рассмотрим пример действия для контроллера AdminController, которое возвращает JSON-данные по запросу с параметром имени пользователя:

public JsonResult SelectUserData(string userName)
{
  if (string.IsNullOrEmpty(userName))
    throw new HttpException(404, "Пользователь не найден");
  MembershipProvider mp = Membership.Provider;
  MembershipUser user = mp.GetUser(userName, false);
  UserData userData = new UserData()
  {
    Comment = user.Comment,
    Email = user.Email,
    IsApproved = user.IsApproved,
    IsLockedOut = user.IsLockedOut
  };
  return Json(userData, null, Encoding.UTF8);
}

В представленном фрагменте кода для передачи набора данных о пользователе в виде JSON-данных используется единственный метод Json, которому передается набор данных. Результатом, который получит пользователь в ответ, например, на такой запрос http://localhost:5434/Admin/SelectUserData?userName=admin будет текст в следующем формате:

{"UserId":null,"Email":"[email protected]","Comment":"","IsApproved":true, "IsLockedOut":false,"CurrentMembershipUser":null}

Оглавление книги


Генерация: 1.800. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз