У меня есть view (Index.cshtml) с сеткой (сетка JQuery для Infragistics) с imagelink. Если пользователь нажимает на эту ссылку, будет вызвана следующая функция jquery:
function ConfirmSettingEnddateRemarkToYesterday(remarkID) {
//Some code...
//Call to action.
$.post("Home/SetEnddateRemarkToYesterday", { remarkID: remarkID }, function (result) {
//alert('Succes: ' + remarkID);
//window.location.reload();
//$('#remarksgrid').html(result);
});
}
В ответ вы можете увидеть предупреждение для себя и 2 попытки обновить представление. Функция location.reload() работает, но в основном работает слишком много для браузера. Файл .html(result) отправляет весь файл index.cshtml + Layout.cshtml в div div. Так что это неверно.
Это действие, которое он вызывает (SetEnddateRemarkToYesterday):
public ActionResult SetEnddateRemarkToYesterday(int remarkID) {
//Some logic to persist the change to DB.
return RedirectToAction("Index");
}
Это действие, к которому он перенаправляет:
[HttpGet]
public ActionResult Index() {
//Some code to retrieve updated remarks.
//Remarks is pseudo for List<Of Remark>
return View(Remarks);
}
Если я не сделаю window.location.reload после сообщения succesfull AJAX, представление никогда не перезагрузится. Я новичок в MVC, но я уверен, что есть лучший способ сделать это. Я не понимаю здесь ничего принципиального. Возможно, толчок в правильном направлении? Заранее благодарю вас.