我对会话变量的定义非常清楚。但是我对会话有一个实际问题。我有一个使用 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 上一个会话已经具有值。其实我完全糊涂了。请帮我。在实际水平上给出一些技术上的深入理解课程,请澄清我的观点。非常感谢。