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

时间:2018-03-26 03:39:05

标签: c# asp.net asp.net-mvc asp.net-core-mvc

我有一个与Entity Framework对话的基本控制器。我正在创建一个linux-4.9.82来与基本控制器中的实体进行通信。当我将我的家庭控制器继承到基本控制器时,它会抛出下面显示的错误。关于这个的任何指示?

错误讯息:

  

严重级代码描述项目文件行抑制状态错误CS7036
  没有给出的参数对应于'BaseController.BaseController(ServiceContext)'所需的形式参数'context'   Service \ Controllers \ HomeController.cs

代码:

dbContext

我的public class BaseController : Controller { ServiceContext _baseContext; public BaseController(ServiceContext context) { _baseContext = context; } } 继承自基本控制器。

HomeController

2 个答案:

答案 0 :(得分:5)

假设您正确地将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)
            {

            }
    }

此外,由于您要从ServiceContext访问HomeController,因此请protected。此外,没有必要在HomeController

中进行设置

答案 1 :(得分:2)

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

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