📜  从 ActionExecutingContext .net 4.x 获取控制器名称 - C# (1)

📅  最后修改于: 2023-12-03 15:21:51.991000             🧑  作者: Mango

从 ActionExecutingContext .NET 4.x 获取控制器名称 - C#

在ASP.NET MVC框架中,可以使用Action过滤器来在动作执行之前或之后执行某些逻辑。Action过滤器是一个自定义类,它可以通过实现IActionFilter接口来进行注册。ActionExecutingContextIActionFilter接口中的一个参数,它是执行动作之前的上下文对象,可以用来获取请求信息和操作执行的控制器和动作信息。

本文将介绍如何从ActionExecutingContext对象中获取控制器名称,以便在过滤器中进行处理。

获取控制器名称

ActionExecutingContext对象中,ActionDescriptor属性代表当前执行的动作的操作描述符。通过ActionDescriptor可以获取到当前操作所在的控制器类型。控制器类型的名称可以通过Type.Name属性获取。

以下是获取控制器名称的示例代码:

public class CustomActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.Name;
        Console.WriteLine($"执行控制器名称:{controllerName}");
    }
}

当执行了控制器中的某个动作时,该示例代码将输出控制器的名称。

总结

通过ActionExecutingContext对象的ActionDescriptor.ControllerDescriptor.ControllerType.Name属性,可以很容易地获取执行当前操作的控制器名称。这对于对控制器级别的逻辑进行处理非常有用。

以上代码片段返回markdown格式