Asp.net mvc Filter 跳转

 public void OnActionExecuting(ActionExecutingContext filterContext)
        {
           string userName = filterContext.ActionParameters["userName"].ToString();
           if (!string.IsNullOrEmpty(userName))
           {
               RouteData rd = filterContext.RouteData;//.Route.GetRouteData(filterContext.HttpContext);

 

               var consult = consultService.GetConsultByUser(userName);
               if (consult.IsVip == 1 && (!rd.Values["action"].Equals("VipBlogIndex")))
               {
                  // var a = rd.Route.GetType().GetField("Domain",BindingFlags.Instance | BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.ExactBinding);
                 //  a.SetValue(rd.Route, userName + ".cm.aqioo.com");
                   filterContext.Result = new RedirectResult("http://"+userName + ".cm.aqioo.com/index.html");
                  //new RedirectToRouteResult("VipBlogIndex", new RouteValueDictionary(new { controller = "Blog",action = "VipBlogIndex", userName = userName }));
               }
               else if (consult.IsVip != 1 && (!rd.Values["action"].Equals("BlogIndex")))
               {
                   filterContext.Result = new RedirectResult("http://cm.aqioo.com/blog/" + userName + ".html");
                  // new RedirectToRouteResult("BlogIndex", new RouteValueDictionary(new { controller = "Blog", action = "BlogIndex", userName = userName }));
               }
           }
        }

posted on 2010-08-11 19:14  jianshaohui  阅读(841)  评论(0编辑  收藏  举报

导航