脚手架生成.NET Core Identity视图时自定义文件夹的配置问题
解决Identity视图从Areas移至Views后无法加载自定义页面的问题
脚手架生成的Identity视图并非必须存放在Areas文件夹中,按以下步骤调整即可解决页面加载异常问题:
配置Identity页面路由约定
在Program.cs(.NET 6+)或Startup.cs(.NET 5及更早版本)中,修改Identity服务配置,指定Razor Pages的根目录为你迁移后的路径:builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores<ApplicationDbContext>() .AddRazorPages(options => { // 指向迁移后的Identity页面根目录 options.RootDirectory = "/Views/Identity/Pages"; });该配置会告诉Razor Pages引擎到新路径下查找Identity相关页面文件。
修正布局文件路径
调整_Layout.cshtml的引用路径时,使用ASP.NET Core的根路径标识~确保路径正确,比如将原路径改为:@{ Layout = "~/Views/Identity/Pages/_Layout.cshtml"; }也可以使用相对路径,比如从
Account/Manage目录指向上级的Pages目录下的布局文件:../_Layout.cshtml,视你的文件结构灵活调整。检查文件结构一致性
确保迁移到Views/Identity/Pages后的文件结构与原Areas/Identity/Pages完全一致,比如Account/Login.cshtml、Manage/Index.cshtml等文件的层级不能错乱,Razor Pages依赖文件结构匹配路由规则。清除缓存并重启项目
ASP.NET Core可能会缓存视图查找路径,重启项目或清除浏览器缓存,确保加载的是迁移后的新页面。
内容的提问来源于stack exchange,提问作者user1675016
相关产品推荐
相关产品推荐

