ASP.NET Core 2.2 Web App - что говорит ему отображать Index.cshtml - PullRequest
0 голосов
/ 21 марта 2019

Я использую Visual Studio 2017 и .NET Core 2.2.

Выполните следующие действия:

  1. Новый проект и выберите Базовое веб-приложение ASP.NET (нажмите ОК)
  2. Откроется второе диалоговое окно, в котором вы можете выбрать Веб-приложение (например, Razor Pages) или Веб-приложение (Model-View-Controller).

Я хочу указать на одно различие между этими двумя вариантами, глядя на Startup.cs:

Если вы выберете только веб-приложение, вы получите его в нижней части функции настройки:

        app.UseMvc();

Если вы выберете Веб-приложение (Model-View-Controller), вы получите следующее:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

Итак, проект MVC определяет некоторый тип маршрутизации. Что, в частности, говорит мне, что он будет использовать Home Controller по умолчанию, и если действие не указано, будет использовано действие Index (.cshtml).

Первый вариант (Razor pages), ничего не маршрутизирует.

Я не понимаю. Означает ли это, что если вы не определите MapRoute, он всегда будет использовать действие Index (.cshtml)?

Потому что в проекте MVC, если бы я использовал просто:

        app.UseMvc();

и не определил MapRoute, я бы получил 404. Как приложение Razor определяет его маршрутизацию (и где)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...