Что является точкой входа для приложения asp.net mvc 4?

Я изучаю свой путь в приложении MVC 4, но новичок в платформе mvc. Если бы я изучал новое Java-приложение, я бы начал читать код из основного метода и перейти оттуда. Что такое аналоговый для приложения asp.net mvc?

Я запускаю приложение со следующего URL-адреса: http://server/directory/home?iv-user=tuser

Ответ 1

Это HTTP. Вы делаете запрос на веб-сервер для ресурса, как вы указали выше, и контроллер отвечает.

Итак, в ASP.NET MVC у вас есть несколько точек входа: каждый метод действий.

Контроллеры MSDN и методы действий в ASP.NET MVC

Ответ 2

Файл 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 }
    );
}

Ответ 3

В случае, если вы хотите найти первый бит исполняемого кода без рамки, вы должны искать 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-запроса к окончательному визуализированному представлению.

Ответ 4

В global.asax.cs существует метод application_start(). Что касается внимания контроллера к запросу, его запуск в конструкторе контроллера, а затем метод для запрошенного действия.

Ответ 5

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.