1. 結(jié)果過濾器 IResultFilter
? ? ?結(jié)果過濾器:這個(gè)過濾器的作用和操作過濾器非常相似脓鹃,主要其作用范圍是有微小區(qū)別的,結(jié)果過濾器是在操作即將返回結(jié)果到客戶端之前(before)或者之后(after)執(zhí)行干預(yù)部默,比如你可以在返回結(jié)果之后(after)去渲染視圖
2. 資源過濾器 IResourceFilter
? ? ?資源過濾器:但請(qǐng)求進(jìn)入,通過授權(quán)過濾器后,接下來將執(zhí)行資源過濾器(如果有定義),使用資源過濾器甚至可以改變綁定模型洒闸,還可以在資源過濾器中實(shí)現(xiàn)緩存以提高性能
例子:
在 CustomActionFilterAttribute.cs? 繼續(xù)添加?CustomResourceFilterAttribute 和?CustomControllerFilterAttribute
修改 FilterController.cs 的 Infomation 特性?
生成編譯 ->?瀏覽?/filter/Infomation?
這里可以可注意到三點(diǎn):
1.OnResourceExecuted 比 全局Action?還先輸出
2.OnResultExecuted 和?OnResultExecuting 在 全局Action 結(jié)束后 才處理
3.OnResultExecuted?之后才執(zhí)行?OnResourceExecuting
這里就很清晰的可以看到過濾器的循序,就可以很好的知道項(xiàng)目業(yè)務(wù)中需要在哪個(gè)地方處理