2011-01-31 91 views
0

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

回答

5

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

如果您希望特定于客户端的某些内容使用cookie或会话值。

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

0

将要保存的值存入Cookie中。

1

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

0

如果您使用回发而不是链接,则应将数据保存到视图状态。

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是沿着回传保存,如果你留在当前页面。例如,如果你是在page.aspx并使用点击每次<asp:button>,您可以使用视图状态作为一个地方保存你的一些数据,它看起来像这样

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

的网页源代码视图状态自动生成

+0

该问题被标记为C#。但无论如何感谢您的解决方案! – gor 2011-01-31 20:53:43

0

该数据不会保留在HTTP请求上;您需要将其保存在Cookie中,隐藏控件或将其手动存储在视图状态中。

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

相关问题