How to get controller name and action in OnActionExecuting?

Is it possible to calculate the current executable controller / action in OnActionExecuting?

+43
asp.net-mvc-4
Aug 30 '13 at 14:22
source share
5 answers

You can try the ActionDescriptor ActionExecutingContext as follows:

 protected override void OnActionExecuting(ActionExecutingContext filterContext) { string actionName = filterContext.ActionDescriptor.ActionName; string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName ..... base.OnActionExecuting(filterContext); } 
+69
Aug 30 '13 at 14:26
source share

You can use ActionDescriptor ActionExecutingContext

 protected override void OnActionExecuting(ActionExecutingContext filterContext) { var descriptor = filterContext.ActionDescriptor; var actionName = descriptor.ActionName; var controllerName = descriptor.ControllerDescriptor.ControllerName; ...... base.OnActionExecuting(filterContext); } 
+24
Aug 30 '13 at 14:25
source share

You can look at RouteData :

  Request.RequestContext.RouteData.Values["Controller"]; Request.RequestContext.RouteData.Values["Action"]; 
+10
Aug 30 '13 at 14:27
source share
 var controllerName = (string)routingValues["controller"]; var actionName = (string)routingValues["action"]; 
+1
Feb 06 '16 at 6:21
source share

ActionExecutingContext context , this will be your context ....

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

-one
Oct 09 '17 at 10:32 on
source share



All Articles