我正在关注有关使用MVC设置ELMAH的博文:
http://dotnetdarren.wordpress.com/2010/07/27/logging-on-mvc-part-1/
我只完成了第1部分。如果我只是转到Home控制器,然后导致错误,那么一切正常。我也可以查看/elmah.axd,我的错误正确地登录数据库。
但是,我在我的应用程序中添加了一个名为Admin的区域。如果我导航到/ Admin,我收到以下错误:
System.MissingMethodException:没有为此对象定义无参数构造函数。
public override IController CreateController(RequestContext requestContext, string controllerName)
{
var controller = base.CreateController(requestContext, controllerName); //Error here
var c = controller as Controller;
我认为这与我的区域有关。
有谁知道如何解决这个问题?
编辑jfar:
例如,我的管理区域中有一个Employees控制器:
public class EmployeesController : Controller
{
private IEmployeesRepository employeesRepository;
public EmployeesController(IEmployeesRepository employeesRepository)
{
this.employeesRepository = employeesRepository;
}
//...
}
答案 0 :(得分:1)
你的AdminController是否有无参数构造函数?
是的,你需要一个无参数的构造函数。如果您尝试注入依赖项,则需要编写或使用知道如何执行此操作的控制器工厂。
这可能有所帮助:
Constructor Dependency Injection in a ASP.NET MVC Controller