ASP.NET Core 2.2 Web App-告诉它显示Index.cshtml的原因

时间:2019-03-20 23:56:42

标签: c# asp.net-core

我正在使用Visual Studio 2017和.NET Core 2.2。

执行以下操作:

  1. 新建项目,然后选择ASP.NET Core Web应用程序(按OK)
  2. 这将带您进入第二个对话框,您可以在其中选择Web应用程序(具有示例Razor页面)或Web应用程序(模型-视图-控制器)。

在查看Startup.cs时,我想指出两个选项之间的区别:

如果仅选择“ Web应用程序”,则将在“配置”功能的底部获得该信息:

        app.UseMvc();

如果选择Web应用程序(模型-视图-控制器),则会得到以下信息:

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

因此,MVC项目定义了某种类型的路由。专门告诉我默认情况下它将使用Home Controller,并且如果未指定任何操作,则将使用Index(.cshtml)操作。

第一个选项(剃刀页面),不路由任何内容。

我不明白。这是否意味着如果您不定义MapRoute,它将仅使用Index(.cshtml)操作?

因为在MVC项目中,如果我只是使用:

        app.UseMvc();

并且没有定义MapRoute,我会得到一个404。Razor应用程序如何定义它的路由(以及在哪里)?

0 个答案:

没有答案