我正在尝试做的事情:尝试使用“正确的”HTTP Delete 删除记录。
控制器代码:
[HttpDelete]
public void DeleteRun(int RunId)
{
repository.RemoveEntry(RunId);
}
剃刀视图:
@Ajax.ActionLink("Delete","DeleteRun",new {RunId = run.RunId},
new AjaxOptions() { Confirm = "Are you sure you want to delete this entry?",
HttpMethod = "DELETE",
OnComplete = string.Format("DeleteRunInTable({0})",run.RunId)
})
Javascript(在单独的包含文件中):
function DeleteRunInTable(RunId) {
$("tr[data-runid=" + RunId).remove();
}
链接正在创建的 actionlink 方法:
<a data-ajax="true" data-ajax-complete="DeleteRunInTable(11)" data-ajax-confirm="Are you sure you want to delete this entry?" data-ajax-method="DELETE" href="/Runs/Delete/11">Delete</a>
不确定 javascript 部分是否有效,但不必担心。尝试一次迈出一步:)。现在它就像一个传统标签一样工作,当我点击链接时,它只是在做一个 GET 请求的 href。当然,由于我在控制器上放置了 [HTTPDelete],我得到了 404 错误。我对 Web 开发很陌生,所以我确信在 javascript 或 jquery 中还有其他方法可以做同样的事情,但我现在只是在做我所知道的。