我想在我的一个控制器上实现一个基本控制器。在该基本控制器中,我希望能够获得当前正在执行的ActionResult名称。
我将如何做到这一点?
public class HomeController : ControllerBase
{
public ActionResult Index()
{
和
public class ControllerBase : Controller
{
public ControllerBase()
{
//method which will get the executing ActionResult
}
}
答案 0 :(得分:15)
您无法在控制器的构造函数中知道这一点,因为控制器当前正在实例化,并且尚未调用任何操作。但是,您可以覆盖Initialize方法并从路由引擎中获取操作名称:
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
var actionName = requestContext.RouteData.Values["action"];
}