2

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

ViewState["VST"]="Value1";

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

而我可以使用:

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

4 回答 4

4

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

因此,如果你这样做:

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

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

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

在此处阅读更多内容并了解 ASP.NET 页面生命周期。

于 2013-02-11T07:57:11.890 回答
2

根据文档:

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

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

于 2013-02-11T07:59:28.110 回答
1

如果您还想在回发后保留这些值,那么 ViewState 是最好的选择。

于 2013-02-11T07:59:03.587 回答
1

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

于 2013-02-11T08:13:19.020 回答