ASP.NET中MVC过滤器的简单使用

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

暂无留言

发表评论:

◎欢迎您的参与讨论。