function confirmedDeletion(){
$.post("@Url.Action("Delete", "MyController")", { id : id } , function (data) {
});
}
所以在控制器中称为删除操作:
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
...
...
db.SaveChanges();
return RedirectToAction("Index");
}
调用并执行Index操作,但不刷新html页面(模态对话框仍然可见,表格数据未更新。浏览器不显示刷新页面的图标)
如何重新加载索引页?
答案 0 :(得分:9)
您无法使用重定向来响应ajax调用。您可以使用javascript:
在ajax回调函数中重新加载页面function confirmedDeletion(){
$.post("@Url.Action("Delete", "MyController")", { id : id } , function (data) {
if(data.Success) {
window.location.reload();
}
});
}
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
...
...
db.SaveChanges();
return Json(new { Success = true; });
}
作为刷新页面的替代方法,您可以从表中删除已删除的行:
function confirmedDeletion($button){
$.post("@Url.Action("Delete", "MyController")", { id : id } , function (data) {
if(data.Success) {
$button.closest('tr').remove();
}
});
}
答案 1 :(得分:0)
成功通话后删除行(如Zabravsky的回答)似乎是最干净的答案。但是如果你想在删除调用后刷新整个页面,似乎你不应该使用Ajax,你应该直接提交表单。