C#.MVC.Результаты действий (ActionResult)

Источник

Источник2

Результаты действий это то, что возвращает контроллер по запросу. Это может быть и строка и объект. Рассмотрим несколько примеров. Как правило возвращается либо ActionResult либо производный от него класс.

Определение своего класса

Нужно создать наследника от ActionResult и реализовать его метод. 

Использовать его можно таким образом

Встроенные классы, производные от ActionResult

ContentResult: пишет указанный контент напрямую в ответ в виде строки, практически как предыдущие примеры

Предыдущий пример

Можно переписать вот так

Даже если мы оставим в качестве возвращаемого результата тип string, то фреймворк увидит, что возвращаемый тип не является объектом ActionResult. И тогда автоматически создается объект ContentResult для возвращаемой строки.

  • EmptyResult: по сути ничего не делает, отправляет пустой ответ
  • FileResult: является базовым классом для всех объектов, пишущих бинарный ответ в выходной поток. Предназначен для отправки файлов
  • FileContentResult: класс, производный от FileResult, пишет в ответ массив байтов
  • FilePathResult: также производный от FileResult класс, пишет в ответ файл, находящийся по заданному пути
  • FileStreamResult: класс, производный от FileResult, пишет бинарный поток в выходной ответ
  • HttpStatusCodeResult: результат действия, который возвращает клиенту определенный статусный код HTTP
  • HttpUnauthorizedResult: класс, производный от HttpStatusCodeResult. Возвращает клиенту ответ в виде статусного кода HTTP 401, указывая, что пользователь не прошел авторизацию и не имеет прав доступа к запрошенному ресурсу.
  • HttpNotFoundResult: производный от HttpStatusCodeResult. Возвращает клиенту ответ в виде статусного кода HTTP 404, указывая, что запрошенный ресурс не найден
  • JavaScriptResult: возвращает в ответ в качестве содержимого код JavaScript
  • JsonResult: возвращает в качестве ответа объект или набор объектов в формате JSON
  • PartialViewResult: производит рендеринг частичного представления в выходной поток
  • RedirectResult: перенаправляет пользователя по другому адресу URL, возвращая статусный код 302 для временной переадресации или код 301 для постоянной переадресации зависимости от того, установлен ли флаг Permanent.
  • RedirectToRouteResult: класс работает подобно RedirectResult, но перенаправляет пользователя по определенному адресу URL, указанному через параметры маршрута
  • ViewResult: производит рендеринг представления и отправляет результаты рендеринга в виде html-страницы клиенту

Представление ViewResult

Оно возвращается довольно часто, рассмотрим его отдельно.

Как правило в контроллере пишется что-то такое…

При этом происходит автоматический поиск представления по пути

Можно также указать представление в ручную

Или так

Передача данных из контроллера в представление

Через ViewData

При этом в представлении эти данные можно использовать так

Через ViewBag

В представлении

FileResult

В контроллере можем написать

или

или

 

This entry was posted in C#. Bookmark the permalink.