2011-01-24 63 views
0

我下面這個博客帖子有關設置ELMAH與MVC:在MVC使用ELMAH與區域2

http://dotnetdarren.wordpress.com/2010/07/27/logging-on-mvc-part-1/

我只是做了部分1.一切正常,如果我只是去了主控制器,然後導致錯誤。我也可以查看/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:

舉例來說,我在我的管理區域的員工控制器:

public class EmployeesController : Controller 
{ 
    private IEmployeesRepository employeesRepository; 

    public EmployeesController(IEmployeesRepository employeesRepository) 
    { 
     this.employeesRepository = employeesRepository; 
    } 

    //... 
} 

回答

1

您AdminController是否有參數的構造函數?


是的,你需要有一個參數的構造函數。如果您正在嘗試注入依賴關係,則需要編寫或使用知道如何執行此操作的控制器工廠。

這可能會幫助:

Constructor Dependency Injection in a ASP.NET MVC Controller

+0

不,它不需要。我將一個存儲庫傳遞給我的所有控制器構造函數。我編輯了我的原稿,向你展示一個例子。我只需要添加一個無參數的構造函數? – Steven 2011-01-24 04:59:47