ASP.NET Core 6 MVC 项目的脚手架标识库后出现 404 错误

404 error after scaffolding identity library of an ASP.NET Core 6 MVC project

我正在使用 .NET 6。每次我搭建 Identity 时,应用程序都会停止工作。

我的Startupclass是这样的:

using BulkBook.Data.Data;
using BulkBook.Data.Repository;
using BulkBook.Data.Repository.Common;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Identity;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<BulkDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("BuldDbConnection")));
//builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
//    .AddEntityFrameworkStores<BulkDbContext>();
builder.Services.AddDefaultIdentity<IdentityUser>()
    .AddEntityFrameworkStores<BulkDbContext>();

builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
builder.Services.AddRazorPages().AddRazorRuntimeCompilation();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapRazorPages();

app.MapControllerRoute(
    name: "default",
    pattern: "{area=Customer}/{controller=Home}/{action=Index}/{id?}");

app.Run();

文件夹结构如下:

如果我删除 Identity 文件夹,一切就会重新开始。

_ViewStart.cshtml身份包含以下代码

@{
    Layout = "/Views/Shared/_Layout.cshtml";
}

我使用区域配置来安排控制器。但是,在添加身份库之后,我不知道为什么路由不起作用。为了让它工作,我刚刚用

装饰了控制器 类
[Area]

属性并传递区域名称。这解决了问题

在你的控制器中添加区域,它会成功

我发现当我使用一些区域时,我会更加含蓄。我不仅声明了区域属性,还声明了区域。

[区域(“着陆点”)]

这对我有用。