MVC Filter中加入验证并跳转

    public class BuildingFilter : ActionFilterAttribute
    {
        /// <summary>
        /// 验证 Building Cookie add xia 验证是否登陆,是否选择案场
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var cookie = filterContext.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
            if (cookie == null)
            {
                filterContext.Result = new RedirectResult("/Login/LoginOut");
                return;
            }
            var buildingCookie = filterContext.HttpContext.Request.Cookies["Building"];
            if (buildingCookie == null)
            {
                filterContext.Result = new RedirectResult("/BuildingList/Index");
                return;
            }
            else
            {
                long buildingSysNo;
                long relationSysNo;
                //关系SysNo
                long.TryParse(buildingCookie.Values["RelationSysNo"], out relationSysNo);
                //案场SysNo
                long.TryParse(buildingCookie.Values["BuildingSysNo"], out buildingSysNo);
                if (buildingSysNo == 0 || relationSysNo == 0)
                {
                    filterContext.Result = new RedirectResult("/BuildingList/Index");
                    return;
                }
            }
            base.OnActionExecuting(filterContext);
        }
    }

我是验证是否登陆和是否选择案场【一并验证】

使用方法如下:

        /// <summary>
        /// 签约列表 -GET
        /// </summary>
        /// <returns></returns>
        [BuildingFilter]
        public ActionResult ContractOrderList()
        {
            return View();
        }
原文地址:https://www.cnblogs.com/xiashenbin/p/4171134.html