TOC

This article is currently in the process of being translated into Russian (~99% done).

Controllers:

Introduction

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

Что такое Контроллер?

Как уже упоминалось ранее, в начале данного обучающего курса, Контроллер играет роль посредника: он комбинирует Вашу Модель с Видом и предоставляет результат конечному пользователю. Тем не менее, ни Модель, ни Вид не являются обязательными: Контроллер может действовать самостоятельно в большинстве основных операций, как например, доставка простого текстового сообщения или перенаправление пользователя куда-либо. Мы обсудим это в позже, в статье об Action Results (Результат Действия).

В ASP.NET MVC, Контроллер является таким же классом, как и любой другой, поэтому его файл имеет расширение .cs (или .vb, если вы используете Visual Basic), и выглядит также, как и любой другой класс в .NET. Однако, существует несколько признаков, которые позволят Вам (и фреймворку .NET) распознать этот класс, как MVC Контроллер:

  • Обычно он помещен в папку с названием "Controllers" в корневом каталоге Вашего проекта
  • Он наследует класс Microsoft.AspNetCore.Mvc.Controller (или один из Ваших собственных классов, который наследует класс Microsoft.AspNetCore.Mvc.Controller)
  • Название класса обычно заканчивается ключевым словом Controller, например, "HomeController" или "ProductsController"

Если Вы не соблюдаете данную конвенцию, фреймворк .NET не сможет распознать Ваш класс как Контроллер, так что имеет смысл ее соблюдать. Однако, если Вы настаиваете, например, на назывании Вашего класса-Контроллера по-другому, Вы можете обозначить его атрибутом [Controller], который размещается прямо перед объявлением класса.

Наследуя класс Microsoft.AspNetCore.Mvc.Controller, Вы получаете некоторый дополнительный функционал, который можете использовать в таких целях MVC, как, например, возвращение Видов (Views) / Частичных Видов (Partial Views). Это также позволяет Вашему классу-Контроллеру получать доступ к такой информации, связанной с HTTP, как например, строка запроса, благодаря свойству HttpContext класса-Контроллера. Другими словами, это превращает обычный .NET класс в веб-класс, позволяя Вам производить действия, которые Вы, обычно, можете производить в PHP или ASP Classic файле, или в любой из множества других веб-технологий.

Куда помещают Контроллеры?

Как упоминалось ранее, Контроллеры обычно помещаются в папку с названием "Controllers", прямо в корневой директиве Вашего MVC проекта. Их обычно называют в соответствии с их назначением, добавляя суффикс "Controller". В Solution Explorer структура папок может выглядеть так:

Заключение

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


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!