admin 发布时间:2015-12-23 分类:.NET 阅读:4248次 添加评论
在ASP.NET MVC中,有三种拦截器:Action拦截器、Result拦截器和Exception拦截器。
使用拦截器,可以在所有http请求前或者请求后来进行业务逻辑的处理,从而进行一些权限访问、身份验证、异常处理等等逻辑处理判断。
以下代码:
public class ExceptionFillters : FilterAttribute, IExceptionFilter { //发生异常时会执行这段代码 public void OnException(ExceptionContext filterContext) { //在这里你可以记录发生异常时你要干什么,比例写日志 //这一行告诉系统,这个异常已经处理了,不用再处理 filterContext.ExceptionHandled = true; } } public class ActionFillters : FilterAttribute, IActionFilter { //传递参数,比如说这个Action只允许admin组的人访问 public string Code { get; set; } public void OnActionExecuted(ActionExecutedContext filterContext) { //执行action后执行这个方法 比如做操作日志 } public void OnActionExecuting(ActionExecutingContext filterContext) { //执行action前执行这个方法,比如做身份验证 } } public class ResultFillters : FilterAttribute, IResultFilter { public void OnResultExecuted(ResultExecutedContext filterContext) { //执行完action后跳转后执行 } public void OnResultExecuting(ResultExecutingContext filterContext) { //执行完action后跳转前执行 } }
如何使用过滤器:
[ResultFillters] [ActionFillters(Code = "admin")] [ExceptionFillters] public ActionResult Index() { return View(); } [ExceptionFillters] public class BaseController : Controller { //所有Controller都继承BaseController,则都会进行异常捕获 }
在MVC里使用过滤器是很简单的,在WebForm里要实现相同的方法则需要使用 HttpModule模块等。
关键字词: MVC过滤器MVCHttpModule
发表评论:
◎欢迎您的参与讨论。