,我發現了丟失的HttpContext「沒有獲得響應在這種情況下錯誤」調用以下函數:在自定義事件
Private Sub ReloadPage(ByVal inNumber As Integer) Handles tempaux.Advertise
'Response.Redirect("tope.aspx?dep=" & CStr(inNumber))
Response.Write("<script>window.open('tope.aspx?dep= & CStr(inNumber)','topFrame');</script>")
End Sub
我已經改了行添加System.Web.HttpContext。 Response.Write之前的電流,我得到'對象引用未設置爲對象的實例'。
給出一些背景:正如你所看到的,tope.aspx是在topframe中打開的。一旦它加載它啓動我定義的CustomTimer對象:
Public Class tope
Inherits System.Web.UI.Page
Public funciones As funciones = New funciones
Dim WithEvents tempaux As CustomTimer = Global.objCustomTimer
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim inUserProfile As Int64
Try
tempaux.StartTimer()
Catch ex As Exception
'bla bla
End Try
正如你所看到的,我已經聲明瞭Global.asax中的CustomTimer。 CustomTimer對象每5秒發出一個Advertise事件,並將'inNumber'作爲tope.aspx頁面的參數傳遞以刷新標籤,這是一件簡單的事情。 CustomTimer是我管理定時器的一個類,它不會繼承任何其他類(因爲我在搜索中學到了它必須繼承一些HTTP,但我不確定)。我猜測,在某些時候,httpcontext正在丟失(我在谷歌搜索,我無法計算其生命週期或任何信息,告訴我爲什麼它會死)。任何人都可以幫助我找出問題所在?
感謝
嗯,我明白了。問題是'刷新'的時間是從數據庫中獲得的,甚至可以在運行時更改,除了我必須重新加載頁面,並給它一個從數據庫中獲取的參數。 Mi的想法是用VB管理所有的東西。沒有一種「創建HttpContext」的方式,就像應用程序在單擊按鈕然後使用Respose.Redirect時一樣? 我想另一個選擇是使用AJAX,但因爲我使用Visual Studio 2003我不知道它是否得到很好的支持。 – user1428789
您可以嘗試創建一個HttpContext,但該響應不會返回給用戶的瀏覽器,因爲它不啓動請求。根據您問題中的描述,我相信您需要使用JavaScript來刷新廣告。如果不是,則需要提供更多描述。 – slolife