Ist es möglich, den aktuell ausgeführten Controller / die aktuell ausgeführte Aktion in OnActionExecuting herauszufinden?
asp.net
asp.net-mvc-4
loyalflow
quelle
quelle
Antworten:
Sie könnten die versuchen ,
ActionDescriptor
von demActionExecutingContext
wie folgt:protected override void OnActionExecuting(ActionExecutingContext filterContext) { string actionName = filterContext.ActionDescriptor.ActionName; string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName ..... base.OnActionExecuting(filterContext); }
quelle
Sie können
ActionDescriptor
von verwendenActionExecutingContext
protected override void OnActionExecuting(ActionExecutingContext filterContext) { var descriptor = filterContext.ActionDescriptor; var actionName = descriptor.ActionName; var controllerName = descriptor.ControllerDescriptor.ControllerName; ...... base.OnActionExecuting(filterContext); }
quelle
Sie könnten sich Folgendes ansehen
RouteData
:Request.RequestContext.RouteData.Values["Controller"]; Request.RequestContext.RouteData.Values["Action"];
quelle
ActionExecutingContext-Kontext Dies wird Ihr Kontext sein ....
var actionName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)context.ActionDescriptor).ActionName; var controllerName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)context.ActionDescriptor).ControllerName;
quelle
Verwenden Sie für ASP.NET Core Folgendes:
var controllerName = ((ControllerBase)filterContext.Controller) .ControllerContext.ActionDescriptor.ControllerName; var actionName = ((ControllerBase)filterContext.Controller) .ControllerContext.ActionDescriptor.ActionName;
quelle
var controllerName = (string)routingValues["controller"]; var actionName = (string)routingValues["action"];
quelle