使用会话变量

本文关键字:变量 会话 | 更新日期: 2023-09-27 18:30:30

我对会话变量的定义非常清楚。但是我对会话有一个实际问题。我有一个视图,我正在使用视图数据,并且该视图数据从会话变量中分配了一个值。我把这个会话变量放在控制器中。在我的观点中

ViewData["MyView"] 

在控制器中

if(Session["MySession")!=null)
{
   ViewData["MyView"]=Session["MySession");
} 

上述控制器是每个页面的通用控制器。我的意思是,从每隔一个页面,控件被重定向到上面的控制器。所以,在此之后,我还有另外三个控制器

控制器1控制器2控制器3

如果我从第一页单击运行报告,控件将转到控制器 1 并设置会话变量

like Session["MySession"]=1;
设置

此会话后,控制器转到公共控制器进行设置视图数据[MyView],并且每次为此视图数据添加值具有不同的逻辑。

同样,当我从第二页单击运行报告时,控件将转到控制器2并设置会话变量

like  Session["MySession"]=1;
设置

此会话后,控制器转到公共控制器进行设置视图数据[MyView],并且每次为此视图数据添加值具有不同的逻辑。我的意思是说ViewData每次都会有不同的值。

同样,当我从第三页点击时,控制的行为和一切以相同的方式进行。

现在一切都在工作。但我的问题是我在每个不同的控制器中使用相同的会话变量。假设用户 1 打开了第 1 页,他单击了 runreport 页面,当然这个会话变量现在将有一个值,在此控件之后将转到公共控制器并在视图数据中设置一个值。同时,如果另一个使用 打开页面2 并且他点击了 运行报告 ,那么再次单击此过程将遵循此过程,或者即使我是否单击运行报告,上一个会话也已经有一个值。 实际上我完全困惑了。请帮助我。 在实践层面深入提供一些技术理解点,请澄清我的观点。谢谢。

使用会话变量

Session是每用户集合,即使它在HttpContext.Current.Session中看起来像静态的。两个不同的用户将获得不同的Session对象,每个新用户将获得自己的空Session对象。

关于MVC框架基础知识的优秀教程。

http://mvcmusicstore.codeplex.com/

http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4