Кнопка ASP.NET не перенаправляет на IE - PullRequest
1 голос
/ 17 февраля 2011

В настоящее время у меня есть кнопка, которая по щелчку клиента запускает функцию jquery, которая изменяет текст на ярлыке (скрытом для пользователя), а затем нажимает вторую (также скрытую для пользователя) кнопку.Затем эта вторая кнопка запускает функцию ASP.NET, последней командой которой является перенаправление на вторую страницу.Причина, по которой мне нужно было это сделать, заключается в том, что я сохраняю значение метки (которая динамически назначается в соответствии с базой данных) в переменную сеанса ПЕРЕД перенаправлением на вторую страницу.

Этот метод отлично работает в Chromeи Firefox.Тем не менее, это не похоже на перенаправление в IE.Однако он сохраняет переменную сеанса (т. Е. Вызывается подпрограмма, которая обрабатывает событие нажатия скрытой кнопки).

Кто-нибудь знает, почему это может быть?

Большое спасибо затвоя помощь!Я искренне благодарен за любой ввод.

Редактировать: Я сам пытался нажать скрытую кнопку, и она работает нормально, так что это определенно что-то с обратной передачей от первой кнопки, мешающей подпрограмме, вызванной из второй.

1 Ответ

0 голосов
/ 17 февраля 2011

Почему вы перенаправляете из функции ASP.net? Вы используете JQuery AJAX для выполнения этой функции? Я думаю, что ваш лучший вариант - вызвать функцию jQuery Ajax, которая сохраняет ваше значение в сеансе, а затем (снова в коде javascript) выполняет перенаправление:

document.location = 'your_new_url.aspx'

Надеюсь, это поможет.

Попробуйте это:

В вашем коде JavaScript:

$.ajax({
    type: "POST",
    url: "yourPageName.aspx/SetSession",
    data: "{value: '" + the_session_value_you_want_to_store + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        if(response.d.length==0) {
            //all was OK, redirect
            document.location = 'your_new_url.aspx';
        } else {
            //mmmm some error
            alert(response.d);
        }
    },
    error: function(msg) {
        alert(msg);
    }
});

В вашем коде VB.net:

<WebMethod()> _
Public Shared Function SetSession(ByVal value As String) As String
    Dim output As String = String.Empty
    Try
        HttpContext.Current.Session("your_session_variable_name") = value
    Catch ex As Exception
        output = ex.ToString()
    End Try

    Return output
End Function

Если вы не видите атрибут при написании кода сервера, добавьте этот Imports на свою страницу: Импортирует System.Web.Services

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...