Я получаю «ответ не доступен в этом контексте ошибке» вызывающей следующей функции:Проиграл 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, как вы можете видеть, открывается в верхнем кадре. Как только он загружает его запускает объект 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
Как вы можете видеть, я объявил CustomTimer в Global.asax. Объект CustomTimer вызывает событие «Реклама» каждые 5 секунд и передает «inNumber» в качестве параметра для страницы tope.aspx, чтобы обновить некоторую метку, простую вещь. CustomTimer - это класс, который я создал для управления таймером, он не наследует какой-либо другой класс (для того, что я узнал в своем поиске, он должен наследовать некоторые HTTP-файлы, но я не уверен). Я предполагаю, что в какой-то момент httpcontext теряется (я искал в google, и я не мог понять его жизненный цикл или любую информацию, которая говорит мне, почему она «умирает»). Может ли кто-нибудь помочь мне выяснить, в чем проблема?
благодаря
Хммм Я понимаю. Дело в том, что время «обновления» получается из базы данных, и его можно даже изменить во время выполнения, кроме того, мне приходится перезагружать страницу, давая ей параметр, также полученный из базы данных. Идея Mi заключалась в том, чтобы управлять всем с VB. Разве нет способа создания HttpContext, как это делает приложение, когда вы нажимаете кнопку, а затем используете Respose.Redirect? Я предполагаю, что другой вариант - использовать AJAX, но поскольку я использую Visual Studio 2003, я не знаю, хорошо ли он поддерживается. – user1428789
Вы можете попытаться создать HttpContext, но Response не вернется в браузер пользователя, так как он не инициировал запрос. Основываясь на описании в вашем вопросе, я считаю, что javascript - это то, что вам нужно, чтобы обновить объявление. Если нет, вам нужно предоставить более подробное описание. – slolife