2015-08-26 30 views
0

在我MVC5应用我想从一个类重定向到一个操作方法如下是否有可能从一个类重定向到一个操作方法

public static User GetUserObject() 
    { 
     if (HttpContext.Current.Session["CurrentUser"] != null) 
     { 
      User currentUser = HttpContext.Current.Session["CurrentUser"] as User; 

      return currentUser; 
     } 
     else 
     { 
      //I want to redirect to the login action method from here 
     } 
    } 
+0

从调用者(action)简单地做到这一点不是更好:var usr = GetUserObject();如果(usr == null){//重定向} else {//我是当前用户! }' –

回答

0

你可以做到这一点,但它不建议:

else { 
    var context = new RequestContext(
    new HttpContextWrapper(System.Web.HttpContext.Current), 
    new RouteData()); 
    var urlHelper = new UrlHelper(context); 
    var url = urlHelper.Action("About", "Home"); 
    System.Web.HttpContext.Current.Response.Redirect(url); 
    return new User(); 
} 

我认为这将是更好地做到这样:

public static User GetUserObject() 
{ 
    return HttpContext.Current.Session["CurrentUser"] as User; 
} 

那么你的操作方法中:

public ActionResult Index() 
{ 
    var userObject = Helpers.Helper.GetUserObject(); 
    if (userObject == null) 
     return RedirectToAction("actionName", "controllerName"); 
    else 
     return RedirectToAction("", "") 

    // 

} 
相关问题