你能在每个动作上在ASP.NET-MVC中应用ActionFilter吗?

前端之家收集整理的这篇文章主要介绍了你能在每个动作上在ASP.NET-MVC中应用ActionFilter吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将ASP.NET MVC中的 ActionFilter应用到我的应用程序中的每个操作 – 在每个控制器上.

有没有办法在不将其应用于每个ActionResult方法的情况下执行此操作?

解决方法

是的,你可以做到这一点,但它不是开箱即用的方式.我做了以下事情:

>创建一个基本控制器类,并让所有控制器继承它
>创建一个动作过滤器属性,并使其继承自FilterAttribute和IActionFilter
>使用新的动作过滤器属性装饰您的基本控制器类

以下是动作过滤器属性的示例:

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
}

以下是具有此属性的基本控制器类的示例:

[SetCulture]
public class ControllerBase : Controller
{
    ...
}

只要控制器类继承自ControllerBase,就使用此方法,然后始终执行SetCulture操作过滤器.如果您想要更多详细信息,我有一个完整的样本并在on my blog上发布.

希望有所帮助!

原文链接:https://www.f2er.com/aspnet/246580.html

猜你在找的asp.Net相关文章