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

Контроллеры ASP.NET MVC. Основные принципы формирования и получение входных данных. Результаты действий.

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

При использовании контроллеров существуют некоторые условности. Так, по соглашениям об именовании названия контроллеров должны оканчиваться на суффикс "Controller", остальная же часть до этого суффикса считается именем контроллера.

Контроллер представляет обычный класс, который наследуется от базового класса System.Web.Mvc.Controller. В свою очередь класс Controller реализует абстрактный базовый класс ControllerBase, а через него и интерфейс IController.

Пример контроллера:

    public class MyController : IController

    {

        public void Execute(RequestContext requestContext)

        {

            string ip = requestContext.HttpContext.Request.UserHostAddress;

            var response = requestContext.HttpContext.Response;

            response.Write("<h2>Ваш IP-адрес: " + ip + "</h2>");

        }

    }

}

При обращении к любому контроллеру система передает в него контекст запроса. В этот контекст запроса включается все: куки, отправленные данные форм, строки запроса, идентификационные данные пользователя и т.д. Реализация интерфейса IController позволяет получить этот контекст запроса в методе Execute через параметр RequestContext. В нашем случае мы получаем IP-адрес пользователя через свойство requestContext.HttpContext.Request.UserHostAddress.

Хотя с помощью реализации интерфейса IController очень просто создавать контроллеры, но в реальности чаще оперируют более высокоуровневыми классами, как например класс Controller, поскольку он предоставляет более мощные средства для обработки запросов. И если при реализации интерфейса IController мы имеем дело с одним методом Execute, и все запросы к этому контроллеру, будут обрабатываться только одним методом, то при наследовании класса Controller мы можем создавать множество методов действий, которые будут отвечать за обработку входящих запросов, и возвращать различные результаты действий.

Чтобы создать стандартный контроллер, мы можем также добавить в папку Controllers простой класс и унаследовать от класса Controller, например:

namespace BookStore.Controllers

{

    public class BookShopController : Controller

    {

        public ActionResult Index()

        {

            return View();

        }

    }

}

Однако Visual Studio предлагает нам более удобные средства для создания контроллеров, предполагающие их гибкую настройку. Чтобы ими воспользоваться, нажмем на папку Controllers правой кнопкой мыши и в появившемся меню выберем Add -> Controller....

 

 


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