在我的一个ASP网站中,我遇到了会话变量的问题。
以下是我的代码摘录。
If Page.IsPostBack = False And newFrmReply = False Then
Dim mystream As IO.Stream
mystream = Request.InputStream()
Dim filebytes(mystream.Length) As Byte
mystream.Read(filebytes, 0, mystream.Length)
For i = 0 To UBound(filebytes)
If filebytes(i) <> 0 Then
reg.poststr = reg.poststr & Chr(filebytes(i))
End If
Next
Session("poststring") = reg.poststr
Else
reg.poststr = Session("poststring")
End If
serial = reg.getvalueFromUrl("Serial", reg.poststr)
If serial > 0 Then
TxtSl_no.Text = Mid(serial, 1, 5)
Else
TxtSl_no.Visible = True
lblSerialNo.Visible = True
End If
最初会话(&#34; poststring&#34;)是从发布到URL的字符串设置的。我们给了一个ASP按钮。在按钮上单击后退发生。
在回读会话的任何地方回发后,它返回空字符串。
发布到URL的字符串不为空,因为TxtSl_no.Text具有非空值(基于发布的字符串)。
在web.config中,我将会话时间设置为24小时。 <sessionState timeout="1440"></sessionState>
。
在99%的客户端PC中,此代码运行正常。只有少数PC空白字符串才会保存到数据库中。
在回发时保留txtsl_no.text视图状态。因此,在回发时会保留txtsl_no.text。