2015-08-26 29 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("", "") 

    // 

} 
相關問題