Ich versuche, eine Entität mit AJAX zu löschen. In meinem Controller-Methode habe ich:
[HttpDelete]
public ActionResult Delete(int id)
{
//Deletion logic
return Content("OK");
}
Nach Ansicht Ich machte einen Anruf AJAX wie folgt:
$('#delete').click(function() {
if (confirm('Delete?')) {
var $link = $(this);
$.ajax({
url: this.href,
type: 'DELETE',
success: function (result) {
$link.parent().remove();
}
});
}
return false;
});
AJAX Link als gebaut wird:
@Html.ActionLink("Delete?", "Delete", new { id = Model.Id }, new { id = "delete", @class = "delete-link" })
The Delete
Aktion Ich erhalte die Anfrage nicht über den Link, aber wenn ich über die direkte URL darauf zugreife, funktioniert sie tatsächlich. Auch wenn ich die type: 'DELETE',
Zeile lösche, die es nicht spezifiziert und die Controller-Aktionslinie [HttpDelete]
mit [HttpGet]
ersetze, funktioniert es auch.
Mein Punkt ist es ist eine DELETE
Methode, die ich nicht als GET
Anfrage behandeln möchte, aber ich kann nicht herausfinden, ob ich etwas anderes vermisse.
Ich würde gerne, wenn jemand von euch mir helfen könnte zu verstehen, warum die Controller-Aktion Delete(int id)
nicht die Anfragen aus dem AJAX-Link kommt.
Vielen Dank im Voraus.
Was ist der Wert von this.href ist, sollte es Controller Route anzeigen lassen. –
@kostbone Ich habe gerade hinzugefügt, wie href generiert wird. Der Wert ist eine absolute URL als localhost/{Controller}/{Action}/X wobei X ein int ist. –
@RoryMcCrossan Ich benutze MVC5 und für das, was ich sehe [FromUri] ist nicht verfügbar. –