c# - ASP.NET Core 2.2 Web App - 什么告诉它显示 Index.cshtml
问题描述
我正在使用 Visual Studio 2017 和 .NET Core 2.2。
请执行下列操作:
- 新建项目并选择 ASP.NET Core Web 应用程序(按 OK)
- 这会将您带到第二个对话框,您可以在其中选择 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) 操作。
第一个选项(Razor pages),什么都不路由。
我不明白。这是否意味着如果您不定义 MapRoute 它将始终使用 Index(.cshtml) 操作?
因为对于 MVC 项目,如果我只使用:
app.UseMvc();
并且没有定义 MapRoute,我会得到 404。Razor 应用程序如何定义它的路由(以及在哪里)?
解决方案
推荐阅读
- vbscript - 使用 VBScript 关闭 Word 会留下临时 Word 文档
- javascript - 在 IE v11 中下载并打开 PDF
- loops - 在 last , (comma) country 之后获取字符
- ios - 有没有办法在启动屏幕的 UILabel 中使用不间断空格?
- excel - 在excel中创建一个计数器,单击命令按钮后值会增加
- node.js - Moment & Timezone convert local time fails
- maven - JavaFX 11 development in both IntelliJ and Visual Studio Code
- css - 水平定位的 CSS GRID 元素有效,垂直定位无效
- python - 如何使用 python 获取停用词列表
- javascript - 如何创建一个指向特定页面的链接,等待 3 秒,然后自动点击当前页面上的内部链接?