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

ASP.NET 5+React自定义Identity默认UI出现Scripts未渲染错误求解

报错解决方案

报错的核心原因是Identity脚手架生成的Razor子页面中定义了Scripts分段,但作为父视图的_LoginPartial.cshtml或全局布局文件没有对该分段进行渲染,导致框架抛出异常。

修复步骤

  • 优先尝试方案1:打开 /Pages/Shared/_LoginPartial.cshtml 文件,在文件末尾所有HTML代码的外部添加以下代码:
@RenderSection("Scripts", required: false)

required: false表示如果子页面没有定义Scripts分段也不会触发报错,兼容所有场景。

  • 如果方案1不生效,打开 /Pages/Shared/_Layout.cshtml 全局布局文件,在</body>闭合标签之前添加上述@RenderSection代码。
  • 如果仍未解决,直接打开所有Identity脚手架生成的页面(如/Areas/Identity/Pages/Account/Login.cshtml、Register.cshtml等),删除页面中所有@section Scripts { }包裹的代码块,将块内的JS代码直接粘贴到页面对应位置即可,无需通过分段加载,从根源消除分段不匹配的问题。
自定义Identity功能实现步骤

扩展用户与分支机构关联

  1. 定义分支机构实体类,建立用户与分支机构的多对多关联关系,继承IdentityUser扩展自定义用户类,添加分支机构的导航属性
  2. 在ApplicationDbContext中配置实体关系,执行EF迁移更新数据库结构

注册页多选分支机构修改

  • 打开/Areas/Identity/Pages/Account/Register.cshtml.cs,在Input内部类中添加分支机构多选的绑定字段,OnGetAsync方法中查询全部分支机构列表传递到前端
  • 前端Register.cshtml新增多选下拉组件绑定对应字段,OnPostAsync方法中处理提交逻辑,将用户选中的分支机构关联关系存入数据库

登录页单选分支机构修改

  • 打开/Areas/Identity/Pages/Account/Login.cshtml.cs,用户名密码校验通过后,查询当前用户关联的所有分支机构返回前端供用户选择
  • 用户选中分支机构后,将分支机构ID存入Claim或会话中,供后续业务逻辑使用

角色功能开启

  1. 在Startup.cs的服务注册逻辑中添加角色服务注册:
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddRoles<IdentityRole>()
    .AddEntityFrameworkStores<ApplicationDbContext>();
  1. 执行EF迁移更新数据库,生成角色相关表结构,之后即可实现角色创建、用户角色分配、接口角色权限校验等功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:15:00