Html.ActionLink: всплывающее окно (настраиваемое), затем перенаправление - PullRequest
0 голосов
/ 14 марта 2019

Я хочу показать всплывающее окно, когда пользователь нажимает кнопку (что уже сделано с Html.ActionLink - более старый код; всплывающее окно показывает только, если переменная сеанса равна некоторому значению ... эта часть уже вычислена), а затем перенаправляется иливозвращается новое представление (это делается в контроллере).

У меня есть Html.ActionLink(<button name>, <controller>, <action>), и с помощью других ответов здесь я сделал Html.ActionLink(<button name>, <controller>, <action>, null, new { onlick: 'myPopup();'}), где myPopup() - функция, которая создает qjueryмодальное всплывающее окно .

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

Я попытался Html.ActionLink(<button name>, <controller>, <action>, null, new { onlick: 'myPopup();return false;'}), так как return false должен остановить поведение по умолчанию (перенаправление в Controller / Action), а затем в код jquery я поместил перенаправление ajaxк контроллеру при нажатии кнопки OK во всплывающем окне.Но проблема в том, что я не могу заставить это работать, это может быть даже неправильно?

Есть предложения, как добавить эту функцию?

1 Ответ

1 голос
/ 14 марта 2019

Привет и добро пожаловать в ТАК :)

Вам потребуется обработать перенаправление в вашей функции myPopup (). Предполагая, что в вашем модале есть кнопка «Продолжить». Один из способов сделать это -

$('#actionLinkId').click(function (e) {
    e.preventDefault();

    var link = $(this).attr('href');
    $('#continue').attr('href', link);

    $('#yourModalId').modal();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...