我有一个带有图像链接的网格(Infragistics JQuery 网格)的视图(Index.cshtml)。如果用户单击此链接,将调用以下 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) 在备注网格 div 中发布整个 index.cshtml + Layout.cshtml 双倍。所以这是不正确的。
这是它调用的操作 (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);
}
如果我在成功的 AJAX 发布后不执行 window.location.reload,则视图将永远不会重新加载。我是 MVC 的新手,但我确信有更好的方法来做到这一点。我不了解这里的基本内容。也许是朝着正确的方向轻推?先感谢您。