2013-08-30 10 views

Odpowiedz

26

Można użyć ActionDescriptor z ActionExecutingContext

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

@ VSG24 - czy jest to poprawniejsza odpowiedź niż wyżej wymieniona? Nie będąc antagonistami, szczerze chcesz wiedzieć, ponieważ żadna nie jest oznaczona jako poprawna. –

71

Można spróbować ActionDescriptor z ActionExecutingContext następująco:

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

Można zajrzeć na RouteData:

Request.RequestContext.RouteData.Values["Controller"]; 
    Request.RequestContext.RouteData.Values["Action"]; 
1
var controllerName = (string)routingValues["controller"]; 

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

kontekst ActionExecutingContext to będzie Twój kontekst ....

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

Powiązane problemy