在Viewstate或Session中传递DataView更好吗?

时间:2016-02-25 19:32:51

标签: c# asp.net webforms

我有一个DataView,可能永远不会有超过2000条记录。 那么我应该使用Session或ViewState来传递它吗?我必须在一个例程中加载它并在另一个例程中使用它。但是这些是彼此相互呼唤的。 当我得到正确的答案时,你如何从ViewState或Session中获取它?

1 个答案:

答案 0 :(得分:0)

如果您将在同一页面中使用这些信息,我会说,请使用ViewState。两者的区别在于:

会话状态包含与服务器的特定会话(由特定客户端/浏览器/计算机)相关的信息。这是一种跟踪用户在网站上做什么的方式..跨越多个页面......在无状态的网络中。例如特定用户的购物车的内容是会话数据。 Cookie可用于会话状态。

Session["UserName"] = "Test";

在其他页面上,您可以使用以下代码从Session中获取用户名:

string UserName = (string)Session["UserName"];
另一方面,

查看状态是特定于特定网页的信息。它存储在隐藏字段中,以便用户不可见。它用于维护用户的错觉,即页面记得他最后一次在上面做了什么 - 每次回帖都不要给他一个干净的页面。

ViewState["color"] = "red";

string strColor;
strColor =(string)ViewState["color"];