Я использую MVC3. Я узнал, что удалять элемент с помощью метода HttpGet — плохая практика, поскольку любой может перейти по URL-адресу и удалить элемент. Итак, я хочу выполнить операцию удаления в методе HttpPost.
Проблема в том, что когда я нажимаю кнопку удаления, она попадает только в метод HttpGet, но не в метод HttpPost.
Я использовал 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>
Страница контроллера выглядит следующим образом
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(int id)
{
return RedirectToAction("Index");
}