从 ASP.NET Core 6.0 开始,标识 UI 默认使用 Bootstrap 版本 5。 ASP.NET Core 3.0 到 5.0 使用了 Bootstrap 版本 4。
已引入的版本
ASP.NET Core 6.0
行为
AddDefaultIdentity<TUser>(IServiceCollection) 调用内部专用方法 TryResolveUIFramework。
TryResolveUIFramework
读取应用程序程序集中的 UIFramework。 版本 UIFramework
默认为:
- .NET 6 SDK 的 Bootstrap 5
- .NET Core 3.1 和 .NET 5 SDK 的 Bootstrap 4
模板创建的 ASP.NET Core 3.1 和 5.0 应用在 wwwroot\lib\bootstrap 中包含 Bootstrap 4。 模板创建的 ASP.NET Core 6 应用使用 Bootstrap 5。 将 ASP.NET Core 3.1 或 5.0 应用迁移到 .NET 6 时,应用程序会检测 UIFramework
版本 5,而 wwwroot\lib\bootstrap 包含版本 4。 版本不匹配导致身份模板被错误呈现。
更改原因
Bootstrap 5 在 ASP.NET Core 6.0 时间范围内发布。
建议的措施
受此更改影响的应用使用默认的身份 UI,并已将其 Startup.ConfigureServices
添加到以下代码中:
services.AddDefaultIdentity<IdentityUser>()
请执行以下一项操作:
在项目文件中添加 MSBuild 属性
IdentityUIFrameworkVersion
,并指定 Bootstrap 4:<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <IdentityUIFrameworkVersion>Bootstrap4</IdentityUIFrameworkVersion> </PropertyGroup>
前面的标记将
UIFramework
版本设置为 Bootstrap 4,该版本与在 ASP.NET Core 3.1 和 5.0 中使用的版本相同。重命名或删除 wwwroot\lib\bootstrap 文件夹,并将其替换为 ASP.NET Core 6 模板生成的应用中的 wwwroot\lib\bootstrap 文件夹。 标识模板使用此更改,但使用 Bootstrap 的应用可能需要参考 Bootstrap 5 迁移指南。