Контролери, методи дії і результати дій - документація mvc 6

Методи дії і результати дій є фундаментальною частиною розробки за допомогою ASP.NET MVC.

Що таке контроллер¶

У ASP.NET 5 контролер може бути екземплярність класом, який закінчується на "Controller", або може успадковуватися від класу, який закінчується на "Controller". Контролери дотримуються принципу явних залежностей і запитують все залежності, які потрібні їхнім діям, через конструктор за допомогою впровадження залежностей.

За замовчуванням класи контролерів:
  • знаходяться в папці "Controllers"
  • успадковуються від Microsoft.AspNet.Mvc.Controller

Ці дві угоди не обов'язкові.

У паттерне Model-View-Controller контролер відповідає за початкову обробку запиту і створення екземпляра моделі. Зазвичай бізнес логіка реалізується всередині моделі.

Модель повинна бути Plain Old CLR Object (POCO). а не DbContext або типом, пов'язаним з БД.

Контролер приймає результат обробки моделі (якщо такий є) і повертає відповідне подання разом із пов'язаними з ним даними. Див. 🔧 Огляд ASP.NET MVC і Починаємо роботу ASP.NET MVC 6.

Контролер - це абстракція на рівні UI. Він відповідає за те, що вхідні дані валідність і вибирає уявлення, яке потрібно повернути. В правильно побудованих додатках він не включає безпосередньо доступ до даних або бізнес логіку, а замість цього делегує обробку цих речей потрібне сервісів.

Визначення методів действій¶

Будь відкритий метод в контролері є методом дії. Параметри дії пов'язані з даними запиту і валідіруются за допомогою зв'язування моделі.

Для методів дії, які приймають параметри, властивість ModelState.IsValid має бути встановлено на true.

Дії повинні містити логіку для прийому вхідних запитів. Бізнес логіка зазвичай представлена ​​у вигляді сервісів, до яких контролер отримує доступ через впровадження залежностей. Потім дії передають результат станом додатки.

Дії можуть повертати все, що завгодно, але зазвичай вони повертають примірник IActionResult (або Task для асинхронних методів). Методи дії також відповідають за те, яким буде тип відповіді.

Допоміжні методи контроллера¶

Зазвичай більшість розробників хочуть, щоб контролери успадковувалися від базового класу Controller. Тоді контролери отримують доступ до багатьох властивостями і корисним методам, включаючи такі допоміжні методи, які підтримують повернення різних відповідей:

уявлення Повертають уявлення, які використовує модель для представлення HTML. Наприклад: return View (customer); Коди HTTP статусу Повертають коди HTTP статусу. Наприклад: return BadRequest (); Відформатовані відповіді Повертають Json або щось подібне для форматування об'єкта. Наприклад: return Json (customer); Відповіді по статусу Замість повернення об'єкта дію повертає відповідь по статусу (використовуючи Ok. Created. CreatedAtRoute або CreatedAtAction). Наприклад: return Ok (); або return CreatedAtRoute ( "routename", values, newobject "); Перенаправлення Робить перенаправлення до іншого дії (використовуючи Redirect,` `LocalRedirect``,` `RedirectToAction`` або RedirectToRoute). Наприклад: return RedirectToAction (" Complete ", new) ;

Крім того, дія може просто повертати об'єкт. В даному випадку об'єкт буде відформатований, грунтуючись на запиті клієнта. Див. 🔧 Форматування.

"Розподіл праці"¶

У більшості додатків дії будуть іноді спільно працювати над окремими частинами процесу. Наприклад, якась частина програми може бути доступна тільки для аутентіфіцированний користувачів або ви можете використовувати кеш. Якщо ви хочете реалізувати деяку логіку до або після того, як запуститься якийсь метод дії, то можете використовувати filter. Ви можете значно зменшити методи, використовуючи 🔧 Фільтри для обробки таких речей. Це допоможе уникнути дублювання всередині дій, дозволяючи їм діяти за принципом Do not Repeat Yourself (DRY).

Крім того, в можете використовувати:
  • 🔧 Обробка помилок
  • кешування відповіді

Часто в MVC додатках можна використовувати фільтри. А крім того, альтернативою цьому є призначене для користувача сполучна ПО.

Схожі статті