无法弄清楚我做错了什么。
控制器代码。
public class HomeController : Controller
{
private readonly SoapWebService _db;
public HomeController(SoapWebService db)
{
_db = db;
}
public ActionResult Index()
{
return View(_db.GetAllItems("APIKey").ToList());
}
}
查看代码
@model IEnumerable<ProjectName.ServiceName.ItemName>
@foreach (var item in Model) {
@Html.DisplayFor(item => item.Title)
}
错误
没有为此对象定义无参数构造函数。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
答案 0 :(得分:3)
不使用依赖注入功能(框架或手动),您的控制器无法实例化,因为没有无参数构造函数。
在您的情况下,依赖注入器会创建一个SoapWebService
实例,以传递给仅控制器构造函数。
如果不使用DI,您将需要一个无参数构造函数,它将实例化任何依赖项:
public class HomeController : Controller
{
private readonly SoapWebService _db;
public HomeController()
: this(new SoapWebService()) { }
public HomeController(SoapWebService db)
{
_db = db;
}
public ActionResult Index()
{
return View(_db.GetAllItems("APIKey").ToList());
}
}