You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加数据库后ASP.NET Core 6.0 MVC页面异常及空白页求助

问题1:页面加载时出现DataProtection加密错误(MissingMethodException)

错误原因

该错误源于ASP.NET Core组件版本不兼容:你的项目基于ASP.NET Core 6.0,但使用了更高版本的Entity Framework Core 7.0.9,而Identity 6.0.2依赖的DataProtection组件版本与EF Core 7.0的依赖版本冲突,引发了方法找不到的异常。

解决步骤

  • 统一组件版本:将所有ASP.NET Core相关NuGet包的版本统一为6.x系列(与项目框架版本匹配)
    • 降级EF Core到6.x最新稳定版(如6.0.25),可通过NuGet包管理器更新,或直接修改.csproj文件:
      <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.25" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.25" />
      
    • 保持Identity相关包版本为6.0.2,确保与Core 6.0兼容。
  • 清理并还原NuGet包
    • 删除项目目录下的bin和obj文件夹
    • 执行dotnet restore命令重新还原依赖包
  • 显式配置DataProtection密钥存储(可选,规避默认DPAPI加密的兼容性问题)
    在Program.cs中添加DataProtection配置,指定密钥存储位置:
    builder.Services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(@"C:\YourAppKeys")) // 替换为你有读写权限的目录
        .SetApplicationName("StorApp"); // 设置你的应用名称
    

问题2:ManageRole的Role页面完全空白

错误原因

页面空白通常是视图未正确绑定强类型模型、视图文件位置错误或控制器逻辑异常导致的。

解决步骤

  • 确认视图的强类型模型绑定
    在Role.cshtml最顶部添加强类型声明,确保视图能正确识别传入的模型:
    @model List<Microsoft.AspNetCore.Identity.IdentityRole>
    
  • 检查视图文件位置
    视图文件必须放在正确的目录下:
    • 若为ManageRole控制器专属视图,路径应为Views/ManageRole/Role.cshtml
    • 若为共享视图,可放在Views/Shared/Role.cshtml,但优先使用控制器专属目录
  • 排查控制器逻辑
    • 在Index方法中添加断点,确认_roleManager.Roles.ToList()是否能正常获取数据,是否抛出数据库连接异常
    • 确保已执行EF Core迁移,数据库中的AspNetRoles表已创建(执行Add-Migration InitialCreate和Update-Database命令)
  • 检查页面渲染逻辑
    若数据库中无角色数据,视图应显示“هنوز هیچ مقامی تعریف نشده است”;若仍空白,打开浏览器开发者工具,查看页面HTML是否有渲染内容,或是否存在控制台错误。

内容的提问来源于stack exchange,提问作者sadegh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:24:55