如何在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中获取控制器和操作名称?的主要内容,如果未能解决你的问题,请参考以下文章
OnActionExecuting ValidationAttribute
net core体系-web应用程序-4asp.net core2.0 项目实战-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
标准 asp.NET 中的 OnActionExecuting 等效项?
如何在 asp.net 核心 webapi 控制器中读取请求正文?
ActionFilterAttribute:何时使用 OnActionExecuting 与 OnActionExecutingAsync?