use*_*648 3 asp.net-mvc asp.net-mvc-3 asp.net-mvc-filters
我遇到了一个示例MVC3代码,该代码在Global.asax文件中有以下内容:
public static void RegisterGlobalFilters(....)
{
filters.Add(new MyFilter1());
....
var provider = new MyFilterProvider();
provider.Add(c => c.HttpContext.IsDebuggingEnabled ? new MyProvider2() : null);
FilterProviders.Providers.Add(provider)
}
Run Code Online (Sandbox Code Playgroud)
两者MyProvider1并MyProvider2用实现IResultFilter了,我很困惑,为什么他们中的一个被添加到FilterProviders另一种是注册为一个全球性的过滤器.
为什么以及何时应该添加自定义过滤器FilterProvider,以及为什么以及何时将它们注册为全局过滤器?
向GlobalFilters.Filters过滤器添加过滤器时,将为每个请求执行过滤器.
当您IFilterProvider向FilterProviders.Providers筛选器提供程序添加时,将有机会确定特定筛选器是否适用于当前请求.
FilterProviders为您提供更好的控制,同时GlobalFilters可以轻松为整个站点注册过滤器.
| 归档时间: |
|
| 查看次数: |
2813 次 |
| 最近记录: |