ASP.NET MVC——自定义过滤器Filter
2019-04-08 19:10
387 查看
简介:过滤器是对控制器方法前或者后添加的一些判断、本文主要介绍自定义过滤器
1.过滤器的分类
①Authorize(授权):该过滤器用来限制进入控制器的行为
②HandleError(处理错误):该过滤器用来制定一个行为、该行为用来处理某个方法中跑出的异常
2.过滤器的三种应用方式
1.应用到动作方法上:作用于该动作方法
2.应用到控制器上:作用于所有动作方法
3.应用到整个程序中:作用于所有动作方法
[code] filters.Add(new HandleErrorAttribute());
3.自定义过滤器必须满足的条件
1)实现任意一个或多个过滤器接口
2)继承FilterAttribue类
3)实现如下
[code] public class LogExceptionFilter : FilterAttribute, IExceptionFilter { public void OnException(ExceptionContext filterContext) { //定义日志文件路径 string filePath = filterContext.HttpContext.Server.MapPath(@"~\log.txt"); //写入日志信息 using (StreamWriter sw = File.AppendText(filePath)) { sw.WriteLine("时间:{0}", DateTime.Now.ToString()); sw.WriteLine("控制器:{0}", filterContext.RouteData.Values["Controller"]); sw.WriteLine("动作方法:{0}", filterContext.RouteData.Values["Action"]); sw.WriteLine("异常信息:{0}", filterContext.Exception.Message); } } }
4.自定义过滤器的使用
1.作为特性添加在某个控制器方法上
[code] [LogExceptionFilter]//在指定的动作方法定义自定义过滤器 [HttpPost] public ActionResult Register(Customer objCustomer, string validateCode) { if (ModelState.IsValid) { if (String.Compare(TempData["ValidateCode"].ToString(), validateCode, true) != 0) { ModelState.AddModelError("ValidateCode", "验证码不正确,请重新输入!"); return View("Register"); } CustomerManager cManager = new CustomerManager(); if (!cManager.Register(objCustomer)) { ModelState.AddModelError("doubleUser", "当前用户名已被使用,请重新输入!"); return View("Register"); } else { return Content("<script>alert('注册成功,请继续购物!');window.location='" + Url.Content("~/") + "'</script>"); } } else re
5.过滤器的优先级
1.控制器类的过滤器优先于动作方法上的过滤器
2.控制器可以用Order参数进行排序
3.在控制器中重写过滤器方法优先级最高
本文作为学习记录、如有错误之处请斧正。
相关文章推荐
- ASP.NET MVC ActionFilter自定义过滤器异常过滤器过滤器用法
- asp.net MVC之 自定义过滤器(Filter)
- asp.net MVC之 自定义过滤器(Filter) - shuaixf
- asp.net MVC之 自定义过滤器(Filter)
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter 【转】
- ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
- [asp.net mvc]自定义filter
- Attribute(二)——自定义特性+Asp.net MVC中的filter详解
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter
- ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
- ASP.NET MVC Filter (过滤器)的执行顺序
- Asp.net Mvc过滤器获取请求方法自定义特性
- ASP.NET MVC 过滤器Filter
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter
- ASP.NET MVC 过滤器Filter
- Attribute(二)——自定义特性+Asp.net MVC中的filter详解
- Attribute自定义特性+Asp.net MVC中的filter详解
- ASP.NET MVC 重点教程一周年版 第六回 过滤器Filter