AJAX를 사용하여 엔티티를 삭제하려고합니다. 내 컨트롤러 방법에서 내가 가진 : 뷰에서
[HttpDelete]
public ActionResult Delete(int id)
{
//Deletion logic
return Content("OK");
}
다음과 같이 내가 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
행동 링크에서 요청을 받고 있지 않지만 직접 URL을 통해 액세스하면 실제로 작동합니다. 또한 지정되지 않은 채로 type: 'DELETE',
행을 삭제하고 컨트롤러 작업 줄을 [HttpDelete]
으로 바꾼다면 [HttpGet]
으로도 작동합니다.
요점은 DELETE
입니다. 나는 GET
요청으로 처리하고 싶지 않지만 다른 것이 누락되어 있는지 알아낼 수는 없습니다.
컨트롤러 동작 Delete(int id)
이 AJAX 링크에서 오는 요청을 포착하지 못하는 이유를 이해하는 데 도움을 줄 수 있다면 정말 좋을 것입니다.
미리 감사드립니다.
이 추가, 그것은 컨트롤러 경로와 일치해야합니다. –
@kostbone 방금 href가 생성되는 방식을 추가했습니다. 값은 localhost/{Controller}/{Action}/X로 절대 URL입니다. 여기서 X는 int입니다. –
@RoryMcCrossan MVC5를 사용하고 있으며 [FromUri]를 볼 수 없습니다. –