没有给出与 BaseController 所需的形式参数'context'对应的参数



我有一个与实体框架对话的基本控制器。我正在创建一个dbContext与基本控制器中的实体进行交谈。当我将家用控制器继承到基本控制器时,它将抛出下面显示的错误。有任何指针吗?

错误消息:

严重性代码描述项目文件行抑制状态错误CS7036
没有任何参数对应于" basecontroller.basecontroller(serviceContext('的所需形式参数"上下文"' 服务 Controllers HomeController.cs

代码:

public class BaseController : Controller
{
        ServiceContext _baseContext;
        public BaseController(ServiceContext context)
        {
            _baseContext = context;
        }
}

我的HomeController从基本控制器继承。

public class HomeController : BaseController
{
    private readonly ServiceContext _context;
    public HomeController(ServiceContext context)
    {
        _context = context;
    }
}

假设您正确地将ServiceContext注入HomeController,应该是这样的:

public class BaseController : Controller
    {
        protected readonly ServiceContext _baseContext;
        public BaseController(ServiceContext context)
        {
            _baseContext = context;
        }
}
public class HomeController : BaseController
        {
            public HomeController(ServiceContext context)
            :base(context)
            {
            }
    }

也要从HomeController访问ServiceContext,因此将其制成protected。另外,在HomeController

中没有设置它的意义

基类构造函数需要context参数。因此,您应该将一个传递给基类的构造函数:

public HomeController(ServiceContext context) : base(context)
{ }

相关内容

最新更新