首页 > 代码库 > MVC Filter使用

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);
        }
    }
}
View Code

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

技术分享
 [ActionTestFilter]
        public ActionResult Index()
        { 
            return View();
        }

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

 

MVC Filter使用