AJAXを使用してエンティティを削除しようとしています。私のコントローラメソッドでは私が持っている:
$('#delete').click(function() {
if (confirm('Delete?')) {
var $link = $(this);
$.ajax({
url: this.href,
type: 'DELETE',
success: function (result) {
$link.parent().remove();
}
});
}
return false;
});
AJAXのリンクのように構築されている:
@Html.ActionLink("Delete?", "Delete", new { id = Model.Id }, new { id = "delete", @class = "delete-link" })
Delete
アクションを次のように私はAJAX呼び出しを作っていたビューで
[HttpDelete]
public ActionResult Delete(int id)
{
//Deletion logic
return Content("OK");
}
をリンクからリクエストが得られませんが、直接URLにアクセスすると実際に動作します。また、type: 'DELETE',
行を削除してそれを指定せずに残し、コントローラアクション行[HttpDelete]
を[HttpGet]
と置き換えても機能します。
私の指摘はDELETE
です。私はGET
リクエストとして扱いたくありませんが、他に何か不足しているかどうかはわかりません。
コントローラの動作Delete(int id)
がAJAX Linkからの要求を捕まえていない理由を理解できる人がいれば、私は大好きです。
ありがとうございます。これは、IISがPUTを許可し、削除しないことが考えられ
でこれを追加します。 –
@kostbone私はちょうどhrefが生成される方法を追加しました。それの値は、絶対URLです。localhost/{Controller}/{Action}/XここでXはintです。 –
@RoryMcCrossan私はMVC5を使用していますが、[FromUri]は表示されません。 –