如何在OnActionExecuting中获取控制器和操作名称?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在OnActionExecuting中获取控制器和操作名称?相关的知识,希望对你有一定的参考价值。
是否可以找出OnActionExecuting中当前正在执行的控制器/操作?
答案
您可以尝试ActionDescriptor
的ActionExecutingContext
如下:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
string actionName = filterContext.ActionDescriptor.ActionName;
string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName
.....
base.OnActionExecuting(filterContext);
}
另一答案
你可以使用ActionDescriptor
的ActionExecutingContext
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中获取控制器和操作名称?的主要内容,如果未能解决你的问题,请参考以下文章