带有查询字符串的Response.Redirect仅在第一次工作

时间:2012-02-20 22:38:38

标签: asp.net

我有一个生产系统,它有一个按钮可以在不同的网站上使用报价系统。按钮调用

Response.Redirect("https://www.???????.com/program/EditQuote.aspx?QuoteNumber=" & Trim(txtQuoteNum.Text), False)

第一次完美运行,但之后(如果我关闭打开的选项卡),目标页面会出现页面中缺少的几乎所有数据,这些数据应该已经加载到该页面的page_load事件中。这是page_load事件中的代码

If Not IsPostBack Then
   If Request.QueryString("QuoteNumber") IsNot Nothing AndAlso IsNumeric(Request.QueryString("QuoteNumber")) Then
      Session("LoadQuoteNumber") = Request.QueryString("QuoteNumber")
   End If
End If

它再次运行的唯一方法是关闭浏览器并重新开始。它适用于我在localhost上的dev机器,因此我不知道如何尝试跟踪调试此类问题的情况,这种情况只发生在生产环境中。

1 个答案:

答案 0 :(得分:0)

问题是代码背后的以下代码:

Private _refreshState As Boolean
Private _isRefresh As Boolean

Protected Overrides Sub LoadViewState(ByVal savedState As Object)
    Dim AllStates As Object() = savedState
    MyBase.LoadViewState(AllStates(0))
    _refreshState = Boolean.Parse(AllStates(1))
    _isRefresh = _refreshState = Session("__ISREFRESH")
End Sub

Protected Overrides Function SaveViewState() As Object
    Session("__ISREFRESH") = _refreshState
    Dim AllStates() As Object = New Object(2) {}
    AllStates(0) = MyBase.SaveViewState
    AllStates(1) = Not (_refreshState)
    Return AllStates
End Function

用于解决用户刷新页面时遇到的问题。这里给出的文章是代码:http://www.codeproject.com/Articles/10240/Detecting-Page-Refresh