Учебники

MVC Framework — Контроллеры

Контроллеры Asp.net MVC отвечают за управление потоком выполнения приложения. Когда вы делаете запрос (означает запрос страницы) к приложению MVC, контроллер отвечает за возврат ответа на этот запрос. Контроллер может выполнять одно или несколько действий. Действие контроллера может возвращать различные типы результатов действия для конкретного запроса.

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

Создать контроллер

Чтобы создать контроллер —

Шаг 1. Создайте пустое приложение MVC, а затем щелкните правой кнопкой мыши папку Controller в своем приложении MVC.

Шаг 2 — Выберите пункт меню Добавить → Контроллер. После выбора отобразится диалоговое окно Add Controller. Назовите контроллер как DemoController .

Будет создан файл класса Controller, как показано на следующем снимке экрана.

MVC Новый контроллер

Создайте контроллер с помощью IController

В MVC Framework классы контроллеров должны реализовывать интерфейс IController из пространства имен System.Web.Mvc.

public interface IController {
   void Execute(RequestContext requestContext);
}

Это очень простой интерфейс. Единственный метод, Execute, вызывается, когда запрос нацелен на класс контроллера. MVC Framework знает, на какой класс контроллера был нацелен запрос, путем чтения значения свойства контроллера, сгенерированного данными маршрутизации.

Добавить новый класс контроллера

Шаг 1 — Добавьте новый файл класса и назовите его DemoCustomController. Теперь измените этот класс, чтобы он наследовал интерфейс IController.

Контроллер с помощью IController

Шаг 2 — Скопируйте следующий код внутри этого класса.

public class DemoCustomController:IController { 
   
   public void Execute(System.Web.Routing.RequestContext requestContext) { 
      var controller = (string)requestContext.RouteData.Values["controller"]; 
      var action = (string)requestContext.RouteData.Values["action"]; 
      requestContext.HttpContext.Response.Write( 
      string.Format("Controller: {0}, Action: {1}", controller, action)); 
   } 
} 

Шаг 3 — Запустите приложение, и вы получите следующий вывод.