0

我对会话变量的定义非常清楚。但是我对会话有一个实际问题。我有一个使用 viewData 的视图,并且这个 viewdata 被分配了一个来自会话变量的值。我将此会话变量放置在控制器中。在我看来

ViewData["MyView"] 

在控制器中

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

上面的控制器是每个页面的通用控制器。我的意思是从所有其他页面,控件被重定向到上面的控制器。因此,在此之后,我还有其他三个控制器

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

如果我从第一页单击 RunReport,控制转到 Controller1 并设置会话变量

like Session["MySession"]=1;

设置此 Session 后,控制器转到通用控制器设置 ViewData[MyView] 并且每次向该视图数据添加值都有不同的逻辑。

同样,当我从第二页单击 Runreport 时,控制权转到 Controller2 并设置会话变量

like  Session["MySession"]=1;

设置此 Session 后,控制器转到通用控制器设置 ViewData[MyView] 并且每次向该视图数据添加值都有不同的逻辑。我的意思是说 ViewData 每次都会有不同的值。

同样,当我从第三页单击时,控件的行为和一切都以相同的方式。

目前一切正常。但我的问题是我在每个不同的控制器中使用相同的会话变量。假设 User1 已经打开 page1 并且他点击了 runreport page ,当然这个会话变量现在会有一个值,之后这个控件将转到 Common 控制器并在视图数据中设置一个值。同时,如果另一个用户打开 page2 并且他单击 runreport ,那么在再次单击时,将遵循此过程,或者即使我单击 runreport 上一个会话已经具有值。其实我完全糊涂了。请帮我。在实际水平上给出一些技术上的深入理解课程,请澄清我的观点。非常感谢。

4

2 回答 2

2

Session是每个用户的集合,即使它看起来像HttpContext.Current.Session. 两个不同的用户会得到不同的Session对象,每个新用户都会得到自己的空Session对象。

于 2013-09-08T04:55:21.807 回答
0

有很多关于 MVC 框架基础知识的教程。

http://mvcmusicstore.codeplex.com/

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

于 2013-09-09T03:28:58.720 回答