JQuery - вызывает ту же страницу, но с данными другой модели - PullRequest
0 голосов
/ 26 июня 2019

Представьте, что это в вашем контроллере:

public IActionResult Index(string SomeData = null)
{
    return View("Index", SomeData);
}

Внутри Index.cshtml это:

@Html.HiddenFor(model => model, new { Id = "SomeData", Name = "SomeData" })

Когда пользователь переходит на Index, SomeData, конечно, будет нулевым.

После загрузки пользователь может нажать кнопку, которая выполняет вызов ajax, который в случае успеха вызывает модальное диалоговое окно Bootstrap.При закрытии модального диалога я хочу обновить страницу, но на этот раз с некоторыми данными из модального диалога (у индекса не было этих данных раньше, при первой загрузке):

    $.ajax({
        url: '/Test/Index',
        type: 'GET',
        data: {
            SomeData: 'abcdef'
        },
        success: function (responseData, status, responseObj) {
            console.log(responseData, status, responseObj);
        },
        async: false
    });

Вот что яобратите внимание, моя точка останова даже не получает удар.Когда-либо.Тем не менее, консоль сообщает мне, что мой вызов ajax успешен.И это правильно, потому что я возился с выдачей исключений и изменением кодов возврата, и все это работало правильно - я просто никогда не получал свою точку останова.

В случае успеха страница никогда не обновляется.Как будто ничего не происходит.Поэтому нужно сделать что-то еще.

После закрытия модального диалога, как мне обновить эту же страницу с новыми данными модели?Мне нужно обновить страницу из-за сетки, которую я использую.Так что это не просто установка скрытого поля и быть счастливым.Мне нужно установить скрытое поле для загрузки страницы, чтобы в событии OnDataBound я знал, что должен делать что-то конкретное, чего не хотел бы делать.

Я имею в виду, возможно, я обдумываю это.По возвращении из модального диалога, я полагаю, я мог бы просто сделать это (вместо другого вызова ajax):

location.href = "/Test/Index?SomeData=abcdef"

И это все отлично работает.

Спасибо.

1 Ответ

1 голос
/ 26 июня 2019

Если вам нужно перезагрузить всю страницу, то location.href - путь.

Если вы хотите обновить сетку с помощью Ajax, то код сетки должен быть также в частичном представлении, аналогичном вашему модальному диалогу.

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