Можно ли вычислить текущий исполняемый контроллер/действие в OnActionExecuting?
Как получить имя контроллера и действия в OnActionExecuting?
Ответ 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;