如何在OnActionExecuting中获取控制器和操作名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在OnActionExecuting中获取控制器和操作名称?相关的知识,希望对你有一定的参考价值。

是否可以找出OnActionExecuting中当前正在执行的控制器/操作?

答案

您可以尝试ActionDescriptorActionExecutingContext如下:

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"];

以上是关于如何在OnActionExecuting中获取控制器和操作名称?的主要内容,如果未能解决你的问题,请参考以下文章