Представьте, что это в вашем контроллере:
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"
И это все отлично работает.
Спасибо.