ASP.NET Core集成Identity后编译报错:找不到ShowRecoveryCodesModel类型
解决ASP.NET Core集成Identity后
ShowRecoveryCodesModel找不到的编译错误 检查命名空间与using指令
- 确认
ShowRecoveryCodes.cshtml.cs的命名空间和项目其他Identity页面保持一致,比如统一使用Areas.Identity.Pages.Account.Manage。 - 打开
ShowRecoveryCodes.cshtml,检查顶部是否添加了对应命名空间的@using指令,或者@model声明是否能通过完整命名空间找到模型类(如@model YourProjectNamespace.Areas.Identity.Pages.Account.Manage.ShowRecoveryCodesModel)。
重新生成Identity脚手架页面
- 删除
Areas/Identity/Pages/Account/Manage下的ShowRecoveryCodes.cshtml和ShowRecoveryCodes.cshtml.cs文件。 - 通过ASP.NET Core脚手架重新生成该页面:
- 在终端执行:
dotnet aspnet-codegenerator identity -dc YourDbContextName --files Account.Manage.ShowRecoveryCodes(替换YourDbContextName为项目中实际的Identity上下文类名) - 或在Visual Studio中通过「添加->新建项->Identity->选择"Account.Manage.ShowRecoveryCodes"」重新生成,生成时指定正确的DbContext。
- 在终端执行:
清理项目并排查依赖
- 删除项目根目录下的
bin和obj文件夹,执行dotnet clean后再运行dotnet build重新编译。 - 检查项目
.csproj文件,确保Microsoft.AspNetCore.Identity.EntityFrameworkCore、Microsoft.AspNetCore.Identity.UI、Microsoft.VisualStudio.Web.CodeGenerators.Mvc的版本与.NET SDK版本匹配(比如.NET 8对应8.x.x版本),避免版本不兼容导致代码生成异常。
排查自动生成文件的命名空间问题
- 临时打开错误提示的
.g.cs文件,查看它引用的命名空间是否与ShowRecoveryCodesModel实际所在命名空间一致。如果不一致,说明脚手架生成时配置有误,需按第二步重新生成页面。
内容的提问来源于stack exchange,提问作者CFA Digital
相关产品推荐
相关产品推荐

