를 다음과 개념적으로는 삭제의 POST 동사를 사용하는 것이 올바른 아니에요으로 컨트롤러 페이지입니다 webgrid하고 그것 index.cshtml 파일
<div id="DataTable">
@grid.GetHtml(htmlAttributes: new {id="gvMovies" },
columns:grid.Columns(
grid.Column("Title","Movie Title",canSort:true),
grid.Column("Director","Film Maker",canSort:false),
grid.Column(header:"Action",
format:@<text>
<a href="@Url.Action("Edit", "Movies", new { id = @item.Id })">Edit</a>
@using (Html.BeginForm("Delete", "Movies", new { id = @item.id }, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ActionLink("Delete", "Delete", new { id = @item.id }, new { onclick = "return confirm('Are you sure you wish to delete this article?');" })
}
</text>)))
</div>
을 사용했습니다. POST - 정보 게시 용입니다. 올바른 방법은 Delete 메서드에서 특성을 제거하고 GET 동사와 함께 사용하는 것입니다.
이제 정말로 POST를 사용해야하는 경우 가장 먼저 실수하는 것은 양식을 제출할 제출 버튼 대신 링크를 만드는 것입니다. 당신이 게시물에 ID를 전송하려면
@Html.ActionLink("Delete"
<input type=submit value="del" >
하려면
숨겨진 추가 할 수 있습니다 변경해야하므로 대신 링크의 제출 '버튼을 추가해야합니다
<input type="submit" value="Delete">
가능하면 친절이 링크를 통해 이동 작동합니다 생각 http://stephenwalther.com/archive/2009/01/21/asp- ([삭제 링크 보안 구멍을 작성합니다] net-mvc-tip-46-ndash-donrsquot-use-delete-links- 때문에) 당신은 HttpGet 메서드를 사용하여 삭제 수행을 싫어하는 이유를 알 수 있습니다. – SparAby
귀하의 우려를 이해할 수 있지만 제안 된 해결책이 보이지 않는다고 말해야합니다. 권리. 게시물 작성자가 말한 것은 삭제뿐만 아니라 데이터를 변경하는 Get 작업도 취약하다는 것입니다. 나는 차라리 취약 할 수있는 행동에 대한 일련의 보안 규칙을 검증하는 보안 속성을 생성하려고한다. 규칙은 refferal과 요청 된 콘텐츠 유형이 될 수 있습니다. –