Я искал вокруг Интернета, как сделать только удаление HttpPost, пропавшего без вести, я прочитал, что безопаснее делать сообщение вместо Get, поэтому это то, что я хочу сделать.ASP.NET MVC 3 Удалить Http Post
[HttpPost]
public ActionResult Delete(Guid id)
{
var member = GetSelectedMember(id);
_repository.DeleteEntity(member);
TempData["message"] = String.Format("Blog {0} has been deleted!", member.Name);
return RedirectToAction("Index");
}
Это мой метод отправки.
@using (Html.BeginForm("Delete", "Member", FormMethod.Post, new { id = item.ID }))
{
<input type="image" src="Content/delete.png" />
}
Это мой вид бритвы.
Ниже ошибка я получаю
Словарь параметров содержит нулевой элемент для параметра «» ид из ненулевых типа «System.Guid» для метода «System.Web.Mvc.ActionResult Delete (System.Guid) 'в' GenericSaving.Controllers.MemberController '. Необязательный параметр должен быть ссылочным типом, нулевым типом или объявлен как необязательный параметр. Имя параметра: Параметры
Таким образом, я не могу разорвать на методе, поскольку он пингует ошибку до этого, моя первая догадка, что это не передавая идентификатор Guid параметру. Итак, основываясь на моей форме, что происходит не так?
Я думал, что, может быть, в качестве решения я могу поместить его в скрытое поле на форме? Как я могу собрать содержимое этого поля в методе post?
Положите перерыв на 'Html.BeginForm ("Удалить", "член", FormMethod.Post, новый {идентификатор =}' item-id и посмотреть что 'item.ID' выполняется при назначении его объекту querystring. – Silvermind