将ELMAH与MVC 2中的区域一起使用

时间:2011-01-24 04:53:53

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

我正在关注有关使用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;
    }

    //...
}

1 个答案:

答案 0 :(得分:1)

你的AdminController是否有无参数构造函数?


是的,你需要一个无参数的构造函数。如果您尝试注入依赖项,则需要编写或使用知道如何执行此操作的控制器工厂。

这可能有所帮助:

Constructor Dependency Injection in a ASP.NET MVC Controller