ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第六篇:拦截器
></dd> 19 <dt>类别ID: </dt> 20 <dd><%= announce.Category %></dd> 21 <dt>内容: </dt> 22 <dd><%= announce.Content %></dd> 23 <dt>发布时间: </dt> 24 <dd><%= ViewData["Time"] %></dd> 25 </dl> 26 <p><%= ViewData["ExecutingLogger"] %></p> 27 <p><%= ViewData ["ExecutedLogger"] %></p> 28 </div> 29</body> 30</html> 现在可以提交一则公告看结果了: 没有问题, 拦截器方法顺利执行,而且从时间可以看出,OnActionExecuting先执行,Action执行,然后OnActionExecuted执行。 下面我们来看看 异常拦截器的效果。要触发异常拦截器,首先要抛出一个异常,所以,我们在业务逻辑组件做点手脚。将MockAnnounceServices的Release方法 改成如下:
另外,我们还要实现一个Error.aspx视图,这是在异常拦截器中定义的错误视图。我们将它新建在Views/Shared下就可以了。 顺便说一下,共用的视图一般放在Shared下,因为ASP.NET MVC的视图寻找机理是当与Controller同名目录下不存在时,就到Shared下看看有没 有此视图。 Error.aspx:
好了,现在我们再提交新公告,会返回如下结 果: 很明显,业务组件抛出了异常,但是我们 的Action方法中并没有用try...catch处理,但是异常拦截器成功拦截了异常,并做了相应处理。 我们再回过头看看,使用了拦截器后 ,代码是不是很清晰呢。 小结 通过本文,朋友们应该可以掌握拦截器的基本使用以及使用它在表示层实现AOP了。下一篇作为本 系列的终结篇,将对ASP.NET MVC做一个全面的讨论,并与Web Form模型进行一个比较,使朋友们看清其优势、劣势,从而更好的学习使用这个 框架。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |