gpt4 book ai didi

asp.net-mvc - 是否可以对ASP.NET-MVC中的每个 Action 应用ActionFilter

转载 作者:行者123 更新时间:2023-12-04 13:25:12 25 4
gpt4 key购买 nike

我想将ASP.NET MVC中的ActionFilter应用于应用程序中的每个操作-在每个 Controller 上。

有没有一种方法可以不将其应用到每个ActionResult方法中呢?

最佳答案

是的,您可以执行此操作,但这不是开箱即用的方式。我做了以下事情:

  • 创建一个基本 Controller 类,并让您的所有 Controller 都继承自它。
  • 创建一个 Action 过滤器属性,并使其继承自FilterAttribute和IActionFilter。
  • 使用新的 Action 过滤器属性
  • 装饰您的基本 Controller 类

    这是 Action 过滤器属性的示例:
    public class SetCultureAttribute : FilterAttribute, IActionFilter 
    {
    #region IActionFilter implementation

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
    //logic goes here
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
    //or logic goes here
    }

    #endregion IActionFilter implementation
    }

    这是具有此属性的基本 Controller 类的示例:
    [SetCulture]
    public class ControllerBase : Controller
    {
    ...
    }

    只要您的 Controller 类从ControllerBase继承,就使用此方法,那么将始终执行SetCulture操作过滤器。我有完整的示例,如果您想了解更多细节,可以在 on my blog上发布。

    希望对您有所帮助!

    关于asp.net-mvc - 是否可以对ASP.NET-MVC中的每个 Action 应用ActionFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649409/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com