Asp.net 公共变量不';行不通
这是我的aspx背后的示例代码。它一直显示0而不是2。我的代码与这个示例代码的唯一区别是button2位于模式对话框中。但是当我尝试使用这个简单的代码时,它仍然不起作用。。我做错什么了吗?在我看来,您不需要一个公共变量,所以将范围限制到所需的最低限度。您可以使用如下属性:Asp.net 公共变量不';行不通,asp.net,vb.net,Asp.net,Vb.net,这是我的aspx背后的示例代码。它一直显示0而不是2。我的代码与这个示例代码的唯一区别是button2位于模式对话框中。但是当我尝试使用这个简单的代码时,它仍然不起作用。。我做错什么了吗?在我看来,您不需要一个公共变量,所以将范围限制到所需的最低限度。您可以使用如下属性: Public Class sample Public inta As Integer Protected Sub button1(sender As Object, e As EventArgs) inta =
Public Class sample
Public inta As Integer
Protected Sub button1(sender As Object, e As EventArgs)
inta = "2"
End Sub
Protected Sub button2(sender As Object, e As EventArgs)
Response.Write(inta)
End Sub
End Class
将变量
inta
声明为Shared
:
Public Class sample
Private Property IntA As Integer
Get
Return TryCast(Session("IntA"), Integer)
End Get
Set(value As Integer)
Session("IntA") = value
End Set
End Property
Protected Sub button1(sender As Object, e As EventArgs)
IntA = 2
End Sub
Protected Sub button2(sender As Object, e As EventArgs)
Response.Write(IntA.ToString)
End Sub
End Class
如果给它赋值,为什么它会被声明为整数?这不是你的答案,但你最好开始使用Option Strict,因为这是ASPX,你忽略了一个事实,即有回发发生,并且这个变量在页面重新加载时没有值(因此为0)。您应该仔细阅读
页的生命周期
。您必须将该值存储在会话变量中才能保留其值。您应该先阅读web如何工作。每个页面都是无状态的,这意味着在每次回发邮件时,您都会丢失所有保存的信息,除非这些信息位于诸如会话/缓存/视图状态之类的容器中。感谢you@IWantToLearn,你看到我的答案了吗。
Public Shared inta As Integer