2015-12-18 55 views
1
 protected virtual IActionResult InvokeHttp404() 
    { 
     IController errorController = EngineContext.Current.Resolve<CommonController>(); 
     var routeData = new RouteData(); 
     routeData.Values.Add("controller", "Common"); 
     routeData.Values.Add("action", "PageNotFound"); 
     errorController.Execute(new RequestContext(HttpContext, routeData)); 
     return new EmptyResult(); 
    } 

在新的Microsoft.AspNet.Mvc中,無法找到IController,並且Execute不是IController的一部分。我在哪裏可以找到MVC 6的IController?

回答

2

沒有一個 - Controller繼承自ControllerBase

在您的方案中,您需要解析對CommonController類型的引用,而不是IController,您可以使用該引用直接調用您的操作方法。就像是;

CommonController errorController = EngineContext.Current.Resolve<CommonController>(); 
errorController.PageNotFound(); 
return new EmptyResult(); 
+0

太棒了!謝謝,斯塔福德! – nruim83

相關問題