Programing

OnActionExecuting에서 컨트롤러 및 작업 이름을 얻는 방법은 무엇입니까?

lottogame 2020. 11. 14. 09:43
반응형

OnActionExecuting에서 컨트롤러 및 작업 이름을 얻는 방법은 무엇입니까?


OnActionExecuting에서 현재 실행중인 컨트롤러 / 액션을 파악할 수 있습니까?


당신은 시도 할 수 ActionDescriptor의를 ActionExecutingContext다음과 같이 :

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

당신은 사용할 수 ActionDescriptorActionExecutingContext

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;

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

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

ASP.NET Core의 경우 다음을 사용하십시오.

var controllerName = ((ControllerBase)filterContext.Controller)
   .ControllerContext.ActionDescriptor.ControllerName;
var actionName = ((ControllerBase)filterContext.Controller)
   .ControllerContext.ActionDescriptor.ActionName;

참고 URL : https://stackoverflow.com/questions/18535241/how-to-get-controller-and-action-name-in-onactionexecuting

반응형