我有一个视图(Index.cshtml)与网格(Infragistics的JQuery网格)与图像链接。如果用户点击该链接下面的jQuery函数将被调用:AJAX后查看不刷新后
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(结果)在remarksgrid div中发布整个index.cshtml + Layout.cshtml double。所以这是不正确的。
这是它调用的动作(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);
}
如果我没有在succesfull后做window.location.reload AJAX发布视图将永不重新加载。我是MVC的新手,但我确信有更好的方法来做到这一点。我在这里并不了解一些基本的东西。也许是在正确的方向推动?先谢谢你。
更好地使remarksgrid的局部视图,并返回一个局部视图导致SetEnddateRemarkToYesterday方法。 – ssilas777
@ ssilas777你说得对。我意识到我发布这一天后的第二天,这是我所追求的解决方案。谢谢你的回复。 –