Книга: ASP.NET MVC Framework
Назначение контроллеров Обзор контроллеров в ASP.NET MVC
Назначение контроллеров
Обзор контроллеров в ASP.NET MVC
Для разработчика ASP.NET MVC-контроллер представляет собой класс, унаследованный от базового класса Controller
(который в свою очередь унаследован от класса ControllerBase
, реализующего интерфейс IController
). Каждый файл контроллера MVC Framework должен подчиняться следующим требованиям:
? располагаться в папке Controllers
корня проекта;
? иметь суффикс Controller
, например HomeController.cs
, AccountController.cs
;
? класс контроллера должен иметь то же название, что и файл:
HomeController, AccountController
.
Каждый контроллер содержит набор методов, которые в терминах MVC Framework называются действиями (actions). Действия реализуют бизнес-логику ответа и изменение модели данных в зависимости от действия пользователя или запроса клиента. Действия всегда возвращают результат, реализующий класс, наследующий ActionResult
: такими классами являются следующие стандартные типы: ViewResult, JsonResult, FileResult, RedirectResult, RedirectToRouteResult, ContentResult, EmptyResult
. В зависимости от возвращаемого типа клиент получит тот или иной тип набора данных: HTML-страницу, JSON-данные, бинарный файл и др. Кроме того, MVC Framework позволяет определять вам свои собственные определения типа возвращаемых значений.
Для примера рассмотрим проект ASP.NET MVC, который создается по умолчанию:
? в файле AccountController.cs определен класс-контроллер AccountController
, который содержит набор методов, возвращающих результат типа ActionResult
;
? класс AccountController
, кроме всего прочего, содержит методы LogOn, LogOff, Register, ChangePassword и ChangePasswordSuccess
, которые являются действиями, возвращающими результат типа ActionResult
;
? действия этого класса возвращают разнообразные типы значений. Так, большинство действий возвращают результат типа ViewResult
, вызывая стандартный метод View
. Некоторые методы могут вернуть результат в виде RedirectResult
с помощью вызова метода Redirect
или RedirectToRouteResult
с помощью RedirectToAction
;
? в зависимости от типа возвращаемого значения пользователь получит определенный результат. Если метод вернул ViewResult
, то пользователь получит HTML-код и увидит страницу. В случае когда результатом вызова действия будут данные типа RedirectResult
, то браузер пользователя перенаправит вызов на другую страницу. В случае же когда тип возвращаемого значения — это RedirectToRouteResult
, MVC Framework перенаправит вызов на другое действие текущего или иного контроллера.
Рассмотрим более конкретный пример, метод LogOn
класса AccountController
:
public ActionResult LogOn(string userName,
string password,
bool rememberMe,
string returnUrl)
{
if (!ValidateLogOn(userName, password))
{
return View () ;
}
FormsAuth.SignIn(userName, rememberMe) ;
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
Этот метод представляет действие, которое в зависимости от полученных от пользователя данных производит авторизацию пользователя либо сообщает об ошибке авторизации. В данном случае выполняется проверка данных пользователя и, если они неверны, возвращается стандартное представление, сопоставленное данному действию. Если данные верны, происходит авторизация, и пользователь перенаправляется либо на главную страницу, либо на URL, указанный в параметре returnUrl
. Перенаправление на главную страницу происходит через вызов метода RedirectToAction
, который возвращает результат типа RedirectToRouteResult
, перенаправление на другой URL происходит через вызов Redirect
, который возвращает результат типа RedirectResult
.
- Назначение контроллеров Обзор контроллеров в ASP.NET MVC
- Глава 1. Обзор Ruby
- Обзор основных причин повреждения базы данных
- Первый просмотр: краткий обзор
- Улучшенный протокол локальных соединений (XNET)
- Chapter 16. Commercial products based on Linux, iptables and netfilter
- NETMAP target
- Internet Service Providers who use assigned IP addresses
- 1. Назначение экспертных систем
- Глава 3 Нормативные руководящие документы, назначение и задачи информационной безопасности России
- 4.1. Суть обзора задач в тайм-менеджменте. Основные понятия и определения
- Специфика .NET Compact Framework: ADO.NET