.NET Core 3.1 中的区域、页面和布局

Areas, pages, and layouts in .NET Core 3.1

我在 Visual Studio 2019 年创建了一个包含用户帐户的空白模板 MVC 项目,即 ASP.NET 核心 Web 应用程序 -> Web 应用程序(模型视图控制器),身份验证 = 个人用户帐户。

当您 运行 项目时,您可以导航到 /Identity/Account/Register 和 /Identity/Account/Login 的页面。但是,我在项目结构中看不到对这些页面的任何引用。

Areas/Identity 文件夹不包含任何控制器或视图,我看不到任何将 Identity/Account/Register 重定向到不同控制器操作的自定义路由。

这些页面的 html 是在哪里生成的?

如果您通过 selecting "MVC" 选项创建应用程序,帐户控制器会为您搭建脚手架。但是,如果您 select "Web Application",将创建 Razor 页面应用程序,并且将从 Razor Class 库(Microsoft.AspNetCore.Identity.UI)加载所有与身份部分相关的视图。

您仍然可以为身份部分自定义和使用自定义视图页面。

查看identity相关的详细代码,可以在当前项目上右击,select Add->New Scaffolded Item,然后select身份模块

在弹出的Add Identity框中,可以select所有需要覆盖的页面,然后Select中对应的Context数据上下文 class 下拉列表。

最后点击添加,会在Areas/Identity/Pages/Account.

下看到相应的页面代码

更多详情,您可以查看