我想将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上发布.
希望有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。