admin 发布时间:2015-12-23 分类:.NET 阅读:5014次 添加评论
在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
发表评论:
◎欢迎您的参与讨论。