我的页面上有几个条目,每个条目都有一个删除按钮,当我单击一个按钮时,ajax没有调用api吗?
我试图弄清楚我要在哪里犯错误。 如果有人想通了。让我知道。
按钮
<button type="button" data-entryId="@entry.Id" class="btn-delete btn btn-danger CustomStyleForEditAndDeleteButton">
Delete
</button>
Api
// Get : api/entries/1
[HttpDelete]
public IHttpActionResult DeleteEntry(int id)
{
var entryInDb = _context.Entries.SingleOrDefault(x => x.Id == id);
if (entryInDb == null)
return NotFound();
else
_context.Entries.Remove(entryInDb);
_context.SaveChanges();
return Ok();
}
jQuery
@section scripts{
<script>
$(document).ready(function () {
jQuery(".btn-delete").click(function () {
bootbox.confirm({
size: "small",
message: "Are you sure you want to delete this post?",
callback: function (result) {
if (result) {
jQuery.ajax({
url: "/api/entries/" + this.attr("data-entryId"),
method: "DELETE",
success: function () {
bootbox.alert("The post is successfully deleted!");
},
error: function () {
bootbox.alert("something goes wrong when attempting delete operation please try again.");
}
});
}
}
});
});
});
</script>
}
谢谢。
答案 0 :(得分:0)
问题出在jQuery Button上。 this.attr("//..")
正确的jQuery代码:
$(document).ready(function () {
// #entriesDetails - Parent element of a button.
jQuery("#entriesDetails").on("click", ".btn-delete", function () {
var button = $(this);
bootbox.confirm({
size: "small",
message: "Are you sure you want to delete this post?",
callback: function (result) {
if (result) {
jQuery.ajax({
url: "/api/entries/" + button.attr("data-entryId"),
method: "DELETE",
success: function () {
bootbox.alert("The post is successfully deleted!");
window.location.reload();
},
error: function () {
bootbox.alert("something goes wrong when attempting delete operation please try again.");
window.location.reload();
}
});
}
}
});
});
});