MVC Filter使用

1、ActionFilterAttribute 使用示例

namespace Demo.Filter
{
    public class ActionTestFilterAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.TestString = "过滤测试";//全局变量

            filterContext.Controller.ViewBag.domainName = filterContext.HttpContext.Request.Url.Authority;//获取域名

            filterContext.Controller.ViewBag.module = filterContext.HttpContext.Request.Url.Segments[1].Replace(‘/‘, ‘ ‘).Trim();//获取模块名称

            filterContext.Controller.ViewBag.controllerName = filterContext.RouteData.Values["controller"].ToString();//获取 controllerName 名称

            filterContext.Controller.ViewBag.actionName = filterContext.RouteData.Values["action"].ToString();//获取ACTION 名称

            //filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "Home", action = "RedirectHtml" }));//页面重定向
            //filterContext.Result = new RedirectResult("http://www.baidu.com");
            //filterContext.Result = new HttpUnauthorizedResult();
            //filterContext.Result = new ContentResult { Content = @"返回文本" };
            base.OnActionExecuting(filterContext);
        }
    }
}

以特性的形式放在controller 或者action 前面

 [ActionTestFilter]
        public ActionResult Index()
        {
            return View();
        }

页面使用变量@viewbag.变量名

时间: 2024-11-05 06:32:27

MVC Filter使用的相关文章

Asp.Net MVC -Filter

Filter(筛选器)是基于AOP(面向切面编程)的设计,它的作用是对MVC框架处理客户端请求注入额外的逻辑,以非常简单优美的方式实现横切关注点(Cross-cutting Concerns).横切关注点是指横越应该程序的多个甚至所有模块的功能,经典的横切关注点有日志记录.缓存处理.异常处理和权限验证等.本文将分别介绍MVC框架所支持的不同种类的Filter的创建和使用,以及如何控制它们的执行. 四种基本 Filter 概述 MVC框架支持的Filter可以归为四类,每一类都可以对处理请求的不同

学习之-ASP.NET MVC Filter

MVC Filter 是典型的AOP应用,对MVC框架处理客户端请求注入额外的一些逻辑,如日志记录.缓存处理.异常处理和权限验证,性能检测(横切关注点),而这些逻辑通常与主要业务无关,被独立分开作为公用的部分,降低模块之间的耦合度 . ASP.NET MVC 有四种基本过滤器 过滤器类型 接口 默认实现 描述 Authorization IAuthorizationFilter AuthorizationAttribute 最先运行,在任何其他过滤器或动作方法之前 Action IActionF

利用ASP.NET MVC Filter 处理网站异常

1,Filter(筛选器)是基于AOP(面向方面编程)的设计,他的好处什么的就不是本文要说的,如果要了解关于filter的相关知识请参照,大神说的够清楚了:http://www.cnblogs.com/willick/p/3331520.html 这里主要记录一下我自己的利用ASP.NET MVC Filter 处理网站异常过程: 2,首先添加 一个自定义的filter类: using System; using System.Collections.Generic; using System.

Asp.net Mvc (Filter及其执行顺序)

应用于Action的Filter 在Asp.netMvc中当你有以下及类似以下需求时你可以使用Filter功能判断登录与否或用户权限,决策输出缓存,防盗链,防蜘蛛,本地化设置,实现动态Actionfilter是一种声明式编程方式,在Asp.net MVC中它只能应用在Action上Filter要继承于ActionFilterAttribute抽象类,并可以覆写void OnActionExecuting(FilterExecutingContext)和void OnActionExecuted(

简说MVC Filter

Filter与FilterProvider之间的关系 根据用途和执行时机的不同,MVC主要分为以下5种类型的过虑器:AuthenticationFilter.AuthorizationFilter.ActionFilter.ExceptionFilter.ResultFilter.下面我们来看一个IFilter接口,如下所示: public class Filter { public const int DefaultOrder = -1; public Filter(object instan

ASP.Net MVC Filter验证用户登录

一.Filter是什么 ASP.NetMVC模式自带的过滤器Filter,是一种声明式编程方式,支持四种过滤器类型,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常). 过滤器类型 接口 描述 Authorization IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 Exception IExceptionFilter 用于指定一个行为,这个被指定的行为处理某个行为方法或某个控

ASP.NET MVC Filter的思考

思考了一下AOP的具体实现,后来想到ASP.NET MVC过滤器其实就是AOP的一种,于是从Filter下手研究AOP. 暂时先考虑AuthorizationFilter,ActionFilter,ResultFilter三种,剩下的两种其实也差不多.AuthorizationFilter的实现最好是派生自AuthorizeAttribute类,而不是派生IAuthorizationFilter 看看AuthorizetionAttribute的实现: 看看ActionFilterAttribu

MVC Filter

一.Filter在MVC生命周期中的位置 1.IIS中传递请求到程序2.MVC根据Routing来选择由哪个Controller/Action来处理3.Controller调用Model(业务逻辑)来处理数据4.Controller选择一个View, 同时把需要呈现的数据交给View Engine呈现5.最后,返回最终的Response到客户端Filter在MVC的生命周期中的角色就像是一个一个的截面,在MVC的处理过程中,拦截请求. 二.Filter分为: Authorization filt

MVC Filter自定义验证(拦截)

1 namespace QS.Web.Extensions 2 { 3 /// <summary> 4 /// 验证session.权限 状态 5 /// </summary> 6 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)] 7 public class RequestFilterAttribute : ActionFilterAttribute

MVC Filter登录验证

Login Controller public ActionResult Index() { //return Content("hello index!"); return View(); } [HttpGet] public ActionResult Login() { return View(); } [HttpPost] public ActionResult Login(string username, string password) { if(username==&quo