如何从基本控制器获取操作名称?

时间:2010-05-27 05:27:49

标签: asp.net-mvc controller

我想在我的一个控制器上实现一个基本控制器。在该基本控制器中,我希望能够获得当前正在执行的ActionResult名称。

我将如何做到这一点?

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

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

1 个答案:

答案 0 :(得分:15)

您无法在控制器的构造函数中知道这一点,因为控制器当前正在实例化,并且尚未调用任何操作。但是,您可以覆盖Initialize方法并从路由引擎中获取操作名称:

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