从另一个类在 ASP.Net MVC 控制器中设置会话

Phi*_*ger 1 c# asp.net asp.net-mvc asp.net-mvc-4

我正在尝试从另一个控制器访问我的 MVC HomeController 的方法,以将用户重定向到主页(如果用户未通过身份验证)。问题是,如果我自己实例化 HomeController 中的 Session,则不会设置它,但我必须从 HomeController 访问存储在会话中的变量。我尝试这样解决问题:

HomeController currentHomeController = new HomeController();
currentHomeController.Session = this.Session;
return currentHomeController.Index();
Run Code Online (Sandbox Code Playgroud)

但是 Session 变量没有设置器,所以这不起作用。有其他方法可以做到这一点吗?

我的解决方案

这有效:

 return RedirectToAction("Index", "Home");
Run Code Online (Sandbox Code Playgroud)

感谢您的回答!

Vse*_*nin 5

您可以Session通过以下方式访问Http.Context.Current

在你的其他班级:

var myVar = HttpContext.Current.Session["MyVar"]
Run Code Online (Sandbox Code Playgroud)

如果您需要重定向到RedirectToAction您的操作中的另一个操作

return RedirectToAction("MyAction", "MyController")
Run Code Online (Sandbox Code Playgroud)