ASP.NETMVC的ActionFilter

ASP.NETMVC的ActionFilter

ID:40542647

大小:217.00 KB

页数:6页

时间:2019-08-04

ASP.NETMVC的ActionFilter_第1页
ASP.NETMVC的ActionFilter_第2页
ASP.NETMVC的ActionFilter_第3页
ASP.NETMVC的ActionFilter_第4页
ASP.NETMVC的ActionFilter_第5页
资源描述:

《ASP.NETMVC的ActionFilter》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、ActionFilterActionFilter允许我们在目标Action方法执行前后对调用进行拦截以执行一些额外的操作,所有的ActionFilter实现了具有如下定义的接口IActionFilter。1:publicinterfaceIActionFilter2:{3:voidOnActionExecuting(ActionExecutingContextfilterContext);4:voidOnActionExecuted(ActionExecutedContextfilterContext);5:}6: 7:publicclassActionExecutingContext

2、:ControllerContext8:{9:publicActionExecutingContext();10:publicActionExecutingContext(ControllerContextcontrollerContext,ActionDescriptoractionDescriptor,IDictionaryactionParameters);11:12:publicvirtualActionDescriptorActionDescriptor{get;set;}13:publicvirtualIDictionary

3、ct>ActionParameters{get;set;}14:publicActionResultResult{get;set;}15:}16:17:publicclassActionExecutedContext:ControllerContext18:{19:publicActionExecutedContext();20:publicActionExecutedContext(ControllerContextcontrollerContext,ActionDescriptoractionDescriptor,boolcanceled,Exceptionexception);21:

4、22:publicvirtualActionDescriptorActionDescriptor{get;set;}23:publicvirtualboolCanceled{get;set;}24:publicvirtualExceptionException{get;set;}25:publicboolExceptionHandled{get;set;}26:publicActionResultResult{get;set;}27:}如上面的代码片断所示,IActionFilter接口中定义了两个方法OnActionExecuting和OnActionExecuted,这两个方法分别在目

5、标Action方法执行前后被调用,它们的参数类型分别为ActionExecutingContext和ActionExecutedContext。这两个上下文了类型均是ControllerContext的子类。我们可以从ActionExecutingContext对象中获取到用于描述当前Action的ActionDescriptor,以及参数列表。ActionFilter可以在OnActionExecuting方法中对ActionExecutingContext对象的Result属性进行赋值来直接响应当前的请求。一旦ActionExecutingContext的Result属性被成功赋值,将

6、会终止后续ActionFilter和最终目标方法的执行。ActionExecutedContext具有额外的三个属性,Exception表示执行Action方法过程中抛出的异常,而ExceptionHandled是一个表示是否对异常已经做出处理的标记。Canceled属性表示没有完成整个ActionFilter链和目标Action方法的执行而中途被终止。二、ActionFilter的执行机制当ActionInvoker在执行目标Action方法之前,会根据Order和Scope属性对用于封装ActionFilter的Filter对象进行排序。然后根据当前ControllerContext和

7、ActionDescriptro创建一个ActionExecutingContext对象,并将其作为参数依次调用所有ActionFilter的OnActionExecuting方法。在这之后真正的目标Action方法被执行,ActionInvoker随后执行后续的筛选操作。具体来说,它根据当前ControllerContext、ActionDescriptro以及Action方法执行过程中抛出的异常创建一个ActionE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。