2010-05-27 137 views
5

我想在我的一個控制器上實現一個基礎控制器。在該基本控制器中,我希望能夠獲得當前正在執行的ActionResult名稱。如何從基本控制器獲取操作名稱?

我該怎麼做呢?

public class HomeController : ControllerBase 
{ 
    public ActionResult Index() 
    { 

而且;

public class ControllerBase : Controller 
{ 
    public ControllerBase() 
    { 
     //method which will get the executing ActionResult 
    } 
} 

回答

14

您不能在控制器的構造函數中知道這一點,因爲控制器當前正在實例化,並且尚未調用任何操作。但是,您可以覆蓋Initialize方法並從路由引擎獲取操作名稱:

protected override void Initialize(RequestContext requestContext) 
{ 
    base.Initialize(requestContext); 
    var actionName = requestContext.RouteData.Values["action"]; 
} 
+0

啊,太棒了!謝謝@Darin。 – griegs 2010-05-27 05:37:26

+0

@griegs,你是多麼歡迎。 – 2010-05-27 05:40:16

相關問題