我们使用mvc4开发网络应用程序。在许多情况下,我们将在第一页/视图中从用户那里获得价值,在用户到达最后的Page/View之前,我们需要保留这些值。他(她)可以通过4-5个视图才能从第一个视图到达最终视图。
在MVC中保持价值。我们有三种方法。
1.全局变量--但是如果我在一个操作方法中赋值。该值将在另一个操作方法中重置。所以我们就放弃了。
2. session --但我们需要在每个会话中保留5个以上的值。所以我们就放弃了。
3.--它的工作原理类似于魅力。但是在多个用户中,它会导致并发问题。
在mvc中还有其他方法来保留价值吗?请引导我。
发布于 2014-10-14 12:57:05
静态变量将在应用程序域的生命周期中持续存在,这就是为什么您将看到多个用户的并发问题。
在一个会话中存储五个值不应该有任何问题。您可以拥有List<T>并将其存储在会话中。比如:
List<string> someValues = new List<string> {"A","B","C","D", "E",};
HttpContext.Current.Session["userValues"] = someValues;要检索它:
var someValues = HttpContext.Current.Session["userValues"] as List<string>;
if(someValues != null)
{
// found
}唯一需要考虑的是数据的大小。会话存储在服务器级别,用于每个用户,存储过多的数据可能会导致问题,尽管这取决于您的配置。
您还可以看到:什么是ViewData、ViewBag和TempData?- MVC选项用于在当前请求和后续请求之间传递数据。
https://stackoverflow.com/questions/26361363
复制相似问题