Asp.net mvc 5 是否可以从类重定向到操作方法

Asp.net mvc 5 是否可以从类重定向到操作方法,asp.net-mvc-5,Asp.net Mvc 5,在我的MVC5应用程序中,我想从一个类重定向到一个action方法,如下所示 public static User GetUserObject() { if (HttpContext.Current.Session["CurrentUser"] != null) { User currentUser = HttpContext.Current.Session["CurrentUser"] as User;

在我的MVC5应用程序中,我想从一个类重定向到一个action方法,如下所示

  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
        }
    }

您可以这样做,但不建议:

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("", "")

    //

}

从调用方(操作)简单地执行此操作不是更好吗?
var usr=GetUserObject();如果(usr==null){//do redirect}否则{//I是当前用户!}