MVC:没有为此对象定义无参数构造函数

时间:2019-05-07 09:27:22

标签: asp.net-mvc

“ /”应用程序中的服务器错误。 没有为此对象定义无参数构造函数。如何解决此问题。 我在创建的接口ICompanyService和CompanyService类中创建了一个文件夹。

控制器:

         public class HomeController : Controller
         {
               private ICompanyService icompanyService;
               public HomeController(ICompanyService icompanyService)
              {
                 this.icompanyService = icompanyService;
               }
                public ActionResult Index()
              {     
                 ViewBag.CompanyName = this.icompanyService.GetCompany();
                return View();
              }
         }

ICompanyService:

                 public interface ICompanyService
                {
                 string GetCompany();
                }

CompanyService:

                   public class CompanyService
                   {
                      public string GetCompany()
                     {
                         return "Msc";
                     }
                 }

3 个答案:

答案 0 :(得分:0)

  

CompanyService类应继承自ICompanyService接口。        请研究.NET中的依赖注入。

 public class CompanyService : ICompanyService
                   {
                      public string GetCompany()
                     {
                         return "Msc";
                     }
                   }

答案 1 :(得分:0)

您需要在控制器下面包括构造函数,

        public HomeController() : this(new CompanyService())
            {
            }

因此您的整个控制器代码如下所示,

    public class HomeController : Controller
{
    private ICompanyService icompanyService;

    public HomeController() : this(new CompanyService())
    {
    }
    public HomeController(ICompanyService icompanyService)
    {
        this.icompanyService = icompanyService;
    }
    public ActionResult Index()
    {
        ViewBag.CompanyName = this.icompanyService.GetCompany();

        return View();
    }
}

这将解决您的问题。

编码愉快!!!!

答案 2 :(得分:0)

@ravi请使用依赖项注入,因此哪种服务会在没有定义构造函数逻辑的情况下自动初始化您的服务构造函数,依赖项注入句柄并初始化您的服务对象。不用担心初始化。

下面我提到了IoC的链接,希望您的问题能尽快解决。 https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc