页面重新加载 - 保持变量

时间:2011-01-31 20:32:33

标签: c# asp.net

如何重新加载页面,我确保我在我的班级顶部声明的变量不会被重置。 IE我有一个最初设置为0的计数器,如果我使用回发控制它重置该变量我怎么去不在C#中发生这种情况?

5 个答案:

答案 0 :(得分:5)

您是在寻找特定于客户端还是服务器的值?

如果您想要特定于客户端的内容,请使用cookie或会话值。

如果您正在查找特定于服务器的内容,请使用静态类,应用程序或缓存值。

答案 1 :(得分:1)

使用ASP.Net会话或Cookie。或者您可以将其值存储在隐藏字段中。您可以在article中阅读有关theese和outher选项的信息。

答案 2 :(得分:0)

将您要保存的值放入Cookie中。

答案 3 :(得分:0)

如果您使用的是回发,而不是链接,则应将数据保存到viewstate。

VB

Public Property MyValue() As String
            Get
                Dim _mv As Object = ViewState("MyValue")
                If Not _mv Is Nothing Then
                    Return _mv.ToString
                End If
                Return String.Empty
            End Get
            Set(ByVal value As String)
                ViewState("MyValue") = value
            End Set
End Property

C#

public string MyValue {
    get {
        object _mv = ViewState("MyValue");
        if ((_mv != null)) {
            return _mv.ToString();
        }
        return string.Empty;
    }
    set { ViewState("MyValue") = value; }
}

如果您保留在当前页面上,ViewState将保存在PostBacks中。例如,如果您在page.aspx上并使用每次单击的<asp:button>,则可以使用Viewstate作为保存某些数据的位置,它会在页面源代码中查找

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4Mzg3MjEyMzdkZNNlI9zvMeIGeUB4MZbJA2gmsHns9IsmAy/c4dQMybXD" />

自动生成视图状态

答案 4 :(得分:0)

该数据不会在HTTP请求中保留;你需要将它保存在cookie,隐藏控件中,或者手动将它存储在视图状态。

如果您手动执行页面计数器,请考虑将其存储在会话状态中。