如何使UpdateTargetId在Ajax.ActionLink中工作?
我在控制器中有这个方法
[HttpDelete] public void DeleteDocument(int id) { //Here I do the deletion in the db }
在视图中我有这个,调用一个返回局部视图的方法
@{ Html.RenderAction("GetDocumentsByMember"); }
GetDocumentsByMember方法
public ActionResult GetDocumentsByMember() { var companyGuid = HttpContextHelper.GetUserCompanyGuid(); var documents = _service.GetUploadedDocumentsByMember(companyGuid); return PartialView(documents); }
而局部观点
@model IEnumerable @*Here there's a table and at one of the columns there's the next link*@ @Ajax.ActionLink("Delete", "DeleteDocument", new { id = document.Id }, new AjaxOptions { Confirm = "Are you sure you want to delete?", HttpMethod = "DELETE", OnComplete = "deleteComplete" })
而deleteComplete只是刷新一切
function deleteComplete() { window.location.reload(); }
很长(格式正确吗?)一个简单问题的代码,我不能让ajaxoption UpdateTargetId在这里工作而不必调用这个deleteComplete函数。 任何的想法?
谢谢
您可以使用AJAX调用GetDocumentsByMember
操作,而不是重新加载整个页面,只更新实际已更改的DOM部分:
此外,您最好使用OnSuccess = "deleteSuccess"
而不是OnComplete = "deleteComplete"
因为只有在Delete调用实际成功时才应更新。 不要忘记,无论AJAX调用是否成功,都会始终调用OnComplete
回调。