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

ABP.IO MVC/Razor模板仅覆盖Login.cshtml报LoginModel未注册错误如何解决

ABP.IO仅覆盖登录页cshtml报LoginModel未注册的解决方法

错误原因

你仅复制了Login.cshtml视图文件,但视图头部默认的@model声明绑定了当前项目命名空间下的LoginModel类,你本地没有创建该类也没有显式指定使用ABP内置的LoginModel,运行时依赖注入容器找不到对应服务就会抛出未注册异常。

解决步骤

  • 步骤1:修正视图头部指令

    你无需创建本地的Login.cshtml.cs后端类,仅需修改Login.cshtml的头部内容,显式指定Model为ABP官方内置类型:

    @page
    @model Volo.Abp.Account.Web.Pages.Account.LoginModel
    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    @addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI
    

    注意删除视图头部多余的@namespace、@inherits声明,避免绑定到本地类型。

  • 步骤2:匹配视图版本

    你下载的Login.cshtml版本需要和项目引用的ABP框架版本完全一致,不要直接使用dev分支的最新代码,避免视图和内置Model的属性不匹配。

  • 步骤3:确认虚拟文件系统配置

    确保你的Web项目模块类的ConfigureServices方法中已配置虚拟文件系统,允许本地物理文件覆盖内置模块的虚拟视图:

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        // 其他配置...
        
        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            options.FileSets.AddPhysical("Pages");
        });
    }
    

验证

修改完成后清理项目、重新编译运行,登录页会加载你自定义的cshtml视图,底层逻辑仍复用ABP内置实现,不会再抛出服务未注册异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:54:10