[英]MVC:No parameterless constructor defined for this object
'/'應用程序中的服務器錯誤。 沒有為此對象定義無參數構造函數。如何解決此問題。 我在創建的接口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";
}
}
CompanyService類應該從ICompanyService接口繼承。 請研究.NET中的依賴注入。
public class CompanyService : ICompanyService
{
public string GetCompany()
{
return "Msc";
}
}
您需要在控制器中包含以下構造函數,
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();
}
}
這將解決您的問題。
快樂的編碼!!!!!
@ravi請使用依賴注入,那么什么服務會在沒有定義構造函數邏輯的情況下自動初始化服務構造函數,依賴注入句柄並初始化服務對象。 不要擔心初始化。
下面我提到了IoC的鏈接,我希望你的問題很快就能解決。 https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.