Ответ 1
Это HTTP. Вы делаете запрос на веб-сервер для ресурса, как вы указали выше, и контроллер отвечает.
Итак, в ASP.NET MVC у вас есть несколько точек входа: каждый метод действий.
Я изучаю свой путь в приложении MVC 4, но новичок в платформе mvc. Если бы я изучал новое Java-приложение, я бы начал читать код из основного метода и перейти оттуда. Что такое аналоговый для приложения asp.net mvc?
Я запускаю приложение со следующего URL-адреса: http://server/directory/home?iv-user=tuser
Это HTTP. Вы делаете запрос на веб-сервер для ресурса, как вы указали выше, и контроллер отвечает.
Итак, в ASP.NET MVC у вас есть несколько точек входа: каждый метод действий.
Файл Global.asax.cx
, где есть метод запуска ``, может быть тем, что вы ищете. Это код, который запускается при запуске приложения.
protected void Application_Start()
{
...
RouteConfig.RegisterRoutes(RouteTable.Routes);
...
}
Но, глядя на URL, который вы опубликовали, может быть файл HomeController
или DirectoryController
. К сожалению, я не могу сказать, глядя на ваш маршрут.
Пример кода регистра маршрута приведен ниже, где мы можем видеть, что
URL/{controller}/{действие}/{id}
По умолчанию для контроллера /action/id находится Home/Index/optional
Итак, если вы запустите свой веб-сайт с начальным URL как http://localhost:52763/
, он действительно вызовет http://localhost:52763/Home/Index
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
В случае, если вы хотите найти первый бит исполняемого кода без рамки, вы должны искать HomeController.cs
в каталоге Controllers
и искать Index
или Default
, который примет параметр iv-user
.
Чтобы просмотреть полный жизненный цикл страницы, смотрите здесь: http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/be-ahead-of-the-game-poster2. Это приведет вас от входящего HTTP-запроса к окончательному визуализированному представлению.
В global.asax.cs существует метод application_start()
.
Что касается внимания контроллера к запросу, его запуск в конструкторе контроллера, а затем метод для запрошенного действия.
MR P.Campbell был прав. Для более подробной информации ознакомьтесь с: http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx
Я скопировал его основное содержание:
Общие сведения о выполнении MVC-приложений
Запросы на веб-приложение на основе ASP.NET MVC сначала проходят через объект UrlRoutingModule, который является модулем HTTP. Этот модуль анализирует запрос и выполняет выбор маршрута. Объект UrlRoutingModule выбирает первый объект маршрута, соответствующий текущему запросу. (Объект маршрута - это класс, который реализует RouteBase и обычно является экземпляром класса Route.) Если маршруты не совпадают, объект UrlRoutingModule ничего не делает и позволяет запросу вернуться к обычной обработке запросов ASP.NET или IIS. Из выбранного объекта Route объект UrlRoutingModule получает объект, реализующий интерфейс IRouteHandler и связанный с объектом Route. Как правило, в приложении MVC это будет экземпляр класса MvcRouteHandler. Экземпляр MvcRouteHandler создает объект MvcHandler, который реализует интерфейс IHttpHandler. Затем объект MvcHandler выбирает контроллер, который в конечном счете обрабатывает запрос. Дополнительные сведения см. В разделе Маршрутизация ASP.NET.
Здесь эта ссылка дает очень подробное объяснение общего потока выполнения в MVC вместе с событиями жизненного цикла. A-Подробное Пошаговое руководство ASP-NET-MVC-Request-Life.
Для более подробной информации следуйте по этой ссылке. Asp-Net-mvc-life-cycle