пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Контроллеры ASP.NET MVC. Структура, принципы реализации и функционирования контроллера. Методы действий.

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

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

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

using System.Web.Routing;

namespace System.Web.Mvc

{

    public interface IController

    {

        void Execute(RequestContext requestContext);

    }

}

Чтобы получить определение этого интерфейса, необходимо загрузить исходный код MVC Framework. Метод Execute() вызывается, когда запрос направляется этому классу контроллера. Инфраструктура MVC Framework выясняет, на какой класс ориентирован запрос, за счет чтения значения свойства controller, сгенерированного данными маршрутизации, или через специальные классы маршрутизации. Методу Execute() интерфейса IController передается объект RequestContext, предоставляющий информацию о текущем запросе и маршруте, который ему соответствует.

Класс Controller обеспечивает поддержку обработки запросов. Класс Controller предоставляет три ключевых средства, которые описаны ниже:

  • Методы действий. Поведение контроллера разнесено по множеству методов. Каждый метод действия отображается на соответствующий URL и вызывается с параметрами, извлеченными из входящего запроса.
  • Результаты действий. Можно возвращать объект, описывающий результат выполнения действия (например, визуализация представления либо перенаправление на другой URL или метод действия), и затем обрабатывать его каким угодно образом. Разделение между указанием результатов и их выполнением упрощает модульное тестирование.
  • Фильтры. Многократно используемое поведение можно инкапсулировать в виде фильтров и затем помечать каждый аспект поведения контроллеров и методов действий с помощью атрибута в исходном коде.

using System;

using System.Web;

using System.Web.Mvc;

 

namespace ControllersAndActions.Controllers

{

    public class DerivedController : Controller

    {

        public ActionResult Index()

        {

            ViewBag.Message =

                "Привет из контроллера DerivedController метода действия Index";

            return View("MyView");

        }

    }

}

Класс Controller также обеспечивает связь с системой представлений Razor. В этом примере мы возвращаем результат вызова метода View(), которому в качестве параметра передается имя представления для визуализации клиенту.

 

 

 

 


12.01.2019; 19:44
хиты: 105
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь