Ryd*_*der 3 c# oop asp.net-mvc static-variables asp.net-mvc-4
我们使用mvc4开发Web应用程序.在许多情况下,我们将从First Page/View中的用户获得价值,我们需要保留一些变量,直到用户到达最终页面/视图.他/她可以通过4-5个视图从第一个视图到达最终视图.
保持MVC中的价值.我们有3种方式.
1.全局变量 - 但是如果我在一个动作方法中赋值.该值将在另一个操作方法中重置.所以我们放弃了它.
2.Session - 但我们需要在每个会话中保留5个以上的值.所以我们放弃了它.
3.Static Varibale - 其功效与魅力相似.但在多用户中它导致了并发问题.
mvc中还有其他任何方法可以保持价值吗?请指导我.
静态变量将在应用程序域的生命周期中持续存在,这就是您看到多个用户的并发问题的原因.
在会话中存储五个值应该没有任何问题.您可以List<T>
在会话中拥有并存储它.喜欢:
List<string> someValues = new List<string> {"A","B","C","D", "E",};
HttpContext.Current.Session["userValues"] = someValues;
Run Code Online (Sandbox Code Playgroud)
要检索它:
var someValues = HttpContext.Current.Session["userValues"] as List<string>;
if(someValues != null)
{
// found
}
Run Code Online (Sandbox Code Playgroud)
您应该考虑的唯一事情是数据的大小.会话在每个用户的服务器级别存储,存储太多数据可能会导致问题,但这取决于您的配置.
您还可以看到:什么是ViewData,ViewBag和TempData? - 用于在当前请求和后续请求之间传递数据的MVC选项