2

这是aspx页面的一些代码。我不确定我应该使用公共变量还是 viewState

Partial Class madeUpName
 Inherits System.Web.UI.Page
  Public vin As String = ""
  Public stk As String = ""

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  'inside of here i use the variables
 end sub

 Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
  'inside of here I also use the same variables
 end sub

我应该在我的类中为页面使用 viewState 变量还是公共变量?似乎他们都实现了同样的目标。

4

3 回答 3

3

ViewState如果您希望值在回发之间保持不变,请使用。

如果值只需要在页面的生命周期内存在,那么常规变量就可以了。

于 2013-02-21T18:02:23.367 回答
1

ViewState用于将 WebForm 的状态保持在PostBacks. 如果您希望将 WebForm 中的值获取到后面的代码中,请使用ViewState值,否则您可以使用SessionState或 根据您尝试访问的数据,您可以使用Cookies甚至QueryString. PostBack除非您将它们的值保存在ViewStateSessionState等中,否则公共变量将被重置。

更多信息:

了解 Asp.Net ViewState

在回发asp.net之间保存变量的最佳方法?

于 2013-02-21T18:09:34.943 回答
1

如果信息不是很敏感,您可以将它们存储在隐藏输入中:

<input type="hidden" name="myvar" value="123" />

我倾向于将其放入ViewState. 此外,您可以创建访问器,以便以后轻松访问这些值(请原谅我的 C# 语法):

public int MyValue
{
    get { return int.Parse(Request["myvar"]); }
}

当你可以在你的类中使用它就像一个属性。

否则你可以把东西放在ViewState(类似地)

public int MyValue
{
    get { return int.Parse(ViewState["myvar"]); }
}
于 2013-02-21T18:41:19.600 回答