OnActionExecuting에서 현재 실행중인 컨트롤러 / 액션을 파악할 수 있습니까?
답변
당신은 시도 할 수 ActionDescriptor
의를 ActionExecutingContext
다음과 같이 :
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
string actionName = filterContext.ActionDescriptor.ActionName;
string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName
.....
base.OnActionExecuting(filterContext);
}
답변
당신은 사용할 수 ActionDescriptor
의ActionExecutingContext
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var descriptor = filterContext.ActionDescriptor;
var actionName = descriptor.ActionName;
var controllerName = descriptor.ControllerDescriptor.ControllerName;
......
base.OnActionExecuting(filterContext);
}
답변
다음을 볼 수 있습니다 RouteData
.
Request.RequestContext.RouteData.Values["Controller"];
Request.RequestContext.RouteData.Values["Action"];
답변
ActionExecutingContext 컨텍스트 이것은 당신의 컨텍스트가 될 것입니다 ….
var actionName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)context.ActionDescriptor).ActionName;
var controllerName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)context.ActionDescriptor).ControllerName;
답변
ASP.NET Core의 경우 다음을 사용하십시오.
var controllerName = ((ControllerBase)filterContext.Controller)
.ControllerContext.ActionDescriptor.ControllerName;
var actionName = ((ControllerBase)filterContext.Controller)
.ControllerContext.ActionDescriptor.ActionName;
답변
var controllerName = (string)routingValues["controller"];
var actionName = (string)routingValues["action"];
답변
속성 (예 :)을 사용 ActionFilterAttribute
하는 것 같습니다. 그렇다면 다음을 얻을 수 있습니다.
-
작업 이름 양식 속성 생성자 :
public CustomProfileAttribute([CallerMemberName] string caller = null) { _actionName = caller; }
-
컨트롤러 이름 :
public CustomProfileAttribute([CallerMemberName] string caller = null) { _controllerName = context.Controller.ToString()
-
또는 컨트롤러 와 액션 모두 :
public override void OnActionExecuting(ActionExecutingContext context) { var controllerAndAction = context.ActionDescriptor.DisplayName;
하지만 그런 경우에 당신은
controller.action (action)
