MVC中的过滤器分四种分别为:IActionFilter(动作过滤器), IAuthorizationFilter(授权过滤器), IExceptionFilter(异常过滤器), IResultFilter(结果过滤器)字面翻译,凑合理解吧。

在此就那IActionFilter举例,在这个接口中有两个方法,分别是:OnActionExecuting(Action执行前执行)和OnActionExecuted(Action执行后执行),

MVC4 过滤器使用和怎样控制全部action和部分action

现在我们要想让一个Controller中的所有Action都执行这个过滤器就需要对里面的方法进行重写

  public class LoginController : Controller
    {
        //
        // GET: /Login/
        public ActionResult Index()
        {
            return View();
        }
  
        public ActionResult Login()
        {
            string name = HttpContext.Request["UserName"];
            ViewData["name"] = name;
            return View();
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //object[] attrs = filterContext.ActionDescriptor.GetCustomAttributes(typeof(NoFilter), true);
            //if (attrs.Length == 1)//有NoFilter属性
            //{
            //    return;
            //}

            string name = filterContext.HttpContext.Request["UserName"];
            if (string.IsNullOrEmpty(name))
            {
                filterContext.HttpContext.Response.Write("<script>alert('名称不能为空!');</script>");
                filterContext.HttpContext.Response.End();
            }
        }
    }
View Code

相关文章:

  • 2022-12-23
  • 2022-02-10
  • 2022-01-18
  • 2021-08-13
  • 2021-09-23
  • 2022-03-01
  • 2022-02-01
猜你喜欢
  • 2021-12-13
  • 2022-12-23
  • 2021-08-28
  • 2021-05-24
  • 2021-08-08
  • 2023-03-02
  • 2021-10-08
相关资源
相似解决方案