我什么时候需要使用ViewState

时间:2013-02-11 07:52:52

标签: c# asp.net .net viewstate

我对如何在C#中使用ViewState感到困惑,例如使用的好处是什么:

ViewState["VST"]="Value1";

Lable1.Text= ViewState["VST"].ToString();

我可以使用:

string container= "Value1";
Lable1.Text= container;

4 个答案:

答案 0 :(得分:4)

您的ViewState由与页面回发保留的变量组成,因为它们被发送到客户端,客户端将它们与整个页面一起发回。

因此,如果您这样做:

string container= "Value1";
Lable1.Text= container;

然后,用户会看到该页面并点击提交按钮,您的container字符串将不存在。

如果您使用ViewState,ViewState [“VST”]仍将具有该值,因为当用户提交并发回该页面时,它将被“刷新”。

阅读更多here并了解ASP.NET页面生命周期。

答案 1 :(得分:2)

根据文件:

ASP.NET页面框架自动使用视图状态来保存必须在回发之间保留的信息。此信息包括控件的任何非默认值。 您还可以使用视图状态来存储特定于页面的应用程序数据。

有关详细信息,请参阅链接:http://msdn.microsoft.com/en-us/library/bb386448(v=vs.100).aspx

答案 2 :(得分:1)

如果你想在回发后保留值而不是ViewState是最好的选择。

答案 3 :(得分:1)

每当您的应用程序执行回发操作时,控件的当前值都将被清除。因此,为了在页面中存储任何值,您可以将它们保存在ViewState中。当然,您必须首先将EnableViewState属性设置为true。其他信息,如果您想在跳转到多个页面时存储任何值或状态,则可以使用Session。