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

多项目场景下从方法生成视图脚手架错误:无法解析DbContext服务

解决ASP.NET Core MVC多项目下无法从方法生成视图的问题

以下是针对主MVC项目+模型/数据类库的场景,解决视图生成失败的具体方案:

  • 检查项目引用与访问权限
    确保主MVC项目已添加两个类库的项目引用,且类库中的模型类、DbContext类都是public修饰的。如果模型是internal,视图生成工具在设计时无法跨项目访问,直接改成public最省心。

  • 配置设计时DbContext工厂
    运行时在Program.cs注册DbContext没问题,但视图生成工具是设计时运行的,可能无法读取主项目的配置。在存放DbContext的类库中添加一个设计时工厂类,让工具能直接创建DbContext实例:

    using Microsoft.EntityFrameworkCore;
    using Microsoft.EntityFrameworkCore.Design;
    
    namespace YourDataLibraryNamespace
    {
        public class YourDbContextDesignFactory : IDesignTimeDbContextFactory<YourDbContext>
        {
            public YourDbContext CreateDbContext(string[] args)
            {
                var options = new DbContextOptionsBuilder<YourDbContext>();
                // 这里可以用和主项目一致的连接字符串,或者临时写一个测试用的
                options.UseSqlServer("Server=.;Database=YourDb;Trusted_Connection=True;TrustServerCertificate=True");
    
                return new YourDbContext(options.Options);
            }
        }
    }
    
  • 确认视图生成的目标项目
    右键控制器方法选择“添加视图”时,检查弹窗顶部的“项目”下拉框,确保选中的是主MVC项目,而不是类库项目——工具默认可能选错项目,导致无法找到控制器上下文。

  • 清理重建解决方案
    有时候项目缓存或编译产物会干扰工具识别。右键解决方案选择“清理解决方案”,然后删除所有项目的bin、obj文件夹,再重新生成整个解决方案,之后再尝试生成视图。

  • 手动初始化视图骨架
    如果自动生成还是失败,可以先在Views对应文件夹下手动创建空的.cshtml文件,再右键控制器方法选择“添加视图”,选择对应模板后,工具通常能正确识别模型并填充内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:53:12