1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Filter文字

Asp.Net MVC3 简单入门第一季()Asp.Net MVC3 Filter的一些用法。你会了解和学习到全局Fileter,Action Filter等常用用法。 第一节:Filter知识储备 项目大一点总会有相关的AOP面向切面的组件,而MVC(特指:Asp。Net MVC,以下皆同)项目中呢Action在执行前或者执行后我们想做一些特殊的操作(比如身份验证,日志,异常,行为截取等),而不想让MVC开发人员去关心和写这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了。 Asp。Net MVC提供了以下几种默认的Filter: Filter Type 实现接口 执行时间 Default Implementation Authorization filter IAuthorizationFilter 在所有Filter和Action执行之前执行 AuthorizeAttribute Action filter IActionFilter 分别在Action执行之前和之后执行。 ActionFilterAttribute Result filter IResultFilter 分别在Action Result执行之后和之前 ResultFilterAttribute Exception filter IExceptionFilter 只有在filter, 或者 action method, 或者 action result 抛出一个异常时候执行 HandleErrorAttribute 大家注意一点,ActionFilterAttribute默认实现了IActionFilter和IResultFilter。而ActionFilterAttribute是一个Abstract的类型,所以不能直接使用,因为它不能实例化,所以我们想使用它必须继承一下它然后才能使用,下图所示的是ActionFilterAttribute的实现: 所以我们在实现了ActionFilterAttribute,然后就可以直接重写一下父类的方法如下: public virtual void OnActionExecuted(ActionExecutedContext filterContext);//在Action执行之后执行 public virtual void OnActionExecuting(ActionExecutingContext filterContext); //在Action执行前执行 public virtual void OnResultExecuted(ResultExecutedContext filterContext);//在Result执行之后 public virtual void OnResultExecuting(ResultExecutingContext filterContext); //在Result执行之前 然后我们就可以直接在Action、Result执行之前之后分别做一些操作。 第二节:Action Filter实战 光说不练假把式,那现在我们就直接做一个例子来实际演示一下。 首先我们添加一个普通的类,直接上代码吧: public class DemoActionAttributeFilter : ActionFilterAttribute { public string Message { get; set; } public override void OnActionExecuted(ActionExecutedContext filterContext) { //在页面上输出一段文字表示在Action执行完后执行了此段代码 filterContext.HttpContext.Response.Write(@br /After Action Excute + \t + Message); base.OnActionExecuted(filterContext); } public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.HttpContext.Response.Write(@br /Before Action Excute + \t + Message); base.OnActionExecuting

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档