Подтвердить что ты не робот

Как получить имя контроллера и действия в OnActionExecuting?

Можно ли вычислить текущий исполняемый контроллер/действие в OnActionExecuting?

4b9b3361

Ответ 1

Вы можете попробовать ActionDescriptor ActionExecutingContext следующим образом:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
   string actionName = filterContext.ActionDescriptor.ActionName;
   string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName
   .....
   base.OnActionExecuting(filterContext);
}

Ответ 2

Вы можете использовать ActionDescriptor ActionExecutingContext

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    var descriptor = filterContext.ActionDescriptor;
    var actionName = descriptor.ActionName;
    var controllerName = descriptor.ControllerDescriptor.ControllerName;
    ......
    base.OnActionExecuting(filterContext);
}

Ответ 3

Вы можете посмотреть RouteData:

    Request.RequestContext.RouteData.Values["Controller"];
    Request.RequestContext.RouteData.Values["Action"];

Ответ 4

var controllerName = (string)routingValues["controller"];

var actionName = (string)routingValues["action"];

Ответ 5

ActionExecutingContext context, это будет ваш контекст....

var actionName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor) context.ActionDescriptor).ActionName;               var controllerName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor) context.ActionDescriptor).ControllerName;