Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Viewstate或会话中传递DataView是否更好?_C#_Asp.net_Webforms - Fatal编程技术网

C# 在Viewstate或会话中传递DataView是否更好?

C# 在Viewstate或会话中传递DataView是否更好?,c#,asp.net,webforms,C#,Asp.net,Webforms,我有一个数据视图,它可能永远不会有超过2000条记录。 那么我应该使用会话还是视图状态来传递它呢?我必须在一个例程中加载它,然后在另一个例程中使用它。但这些都是互相称呼的。 当我得到正确答案时,您如何从ViewState或Session中获取它?如果您将在同一页面中使用这些信息,我会说,使用ViewState。两者的区别在于: 会话状态包含与服务器的特定会话(由特定客户端/浏览器/计算机)相关的信息。这是一种跟踪用户在网站上做什么的方法。。跨越多个页面…在无状态的网络中。e、 g.特定用户购物车

我有一个数据视图,它可能永远不会有超过2000条记录。 那么我应该使用会话还是视图状态来传递它呢?我必须在一个例程中加载它,然后在另一个例程中使用它。但这些都是互相称呼的。
当我得到正确答案时,您如何从ViewState或Session中获取它?

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

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

Session["UserName"] = "Test";
在其他页面上,您可以使用以下代码从会话中获取用户名:

string UserName = (string)Session["UserName"];
视图状态另一方面是特定于特定网页的信息。它存储在一个隐藏字段中,因此用户看不到它。它是用来维持用户的错觉,即页面记得他上次在上面做了什么-不要每次他发回时都给他一个干净的页面

ViewState["color"] = "red";

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

您想在哪里管理状态客户端或服务器端?无论如何,如果希望会话变量从点击并关闭浏览器的那一刻起保持不变,请使用会话状态。ViewState是保存页面当前状态的变量,它保存在包含大量数据的页面(经常使用)的隐藏字段中。如果将其置于ViewState,则会关闭浏览器。如果你把它放在会话中,你会杀死服务器。对于如此大的数据集,您唯一明智的选择是将其写入数据库,然后在下一页中重新读取。这在很大程度上取决于这些数据的使用方式和用途。一般来说,应该避免使用会话和视图状态。Web应用程序已断开连接,应将其视为断开连接。如果您觉得需要存储2000条记录的数据表以便以后更新,则可能需要重新考虑您的设计。