会话或ViewState字典

时间:2012-07-11 19:27:39

标签: asp.net session dictionary viewstate

我对VB很老但是ASP.NET新手

我在新网站上写过几本词典。问题是,如果多个用户同时使用这些词典,则一个用户会获得另一个用户的信息。

成为ASP.NET的新手,解决这个问题的最佳方法是什么?会话状态还是ViewState?我在寻找错误的方向吗?

3 个答案:

答案 0 :(得分:2)

服务器端:

会话是特定于用户的,或者您可以说特定于浏览器。它不会在站点的所有用户之间共享。会话可以保存任何对象数据类型。

Session["key"] = "value";

应用在网站上的所有用户之间共享。

Application["key"] = "value";

客户端:

ViewState数据不在用户之间共享,甚至不在页面之间共享。它会在回发期间保留数据。

ViewState["key"] = "value";

答案 1 :(得分:1)

会话将保存特定于用户的信息并持续用户的浏览会话。 ViewState将保存用户当前正在浏览的页面上的控件特有的信息。

如果您希望存储特定于用户的信息,并且在浏览网站时需要保留这些信息,那么Session就是一个很好的解决方案。

答案 2 :(得分:0)

如果您想访问User等信息,例如姓名,姓氏,...... Session是最佳选择,因为此数据不会因当前用户而改变。但是如果你想在变量中存储一个值,你应该考虑并发问题。例如,如果你有一个简单按钮和文本框的页面,点击按钮文本框值后存储在Session中,如果用户打开该页面的2个实例然后会有一个会话冲突。每个按钮点击写入会话数据。如果您希望在页面中存储变量,则可以使用ViewState,但您应该认为用户可以轻松查看此值。如果要保护值,则应使用View State Encryption。如果你想在页面之间传递值,你可以使用Query String

祝你好运