我一直在网上寻找如何做一个删除 HttpPost 错过了 get,我读到做一个帖子而不是一个 Get 更安全,所以这就是我想要做的。
[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" />
}
这是我的剃刀观点。
以下是我得到的错误
参数字典包含“GenericSaving.Controllers.MemberController”中方法“System.Web.Mvc.ActionResult Delete(System.Guid)”的不可空类型“System.Guid”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
因此,我无法中断该方法,因为它在此之前 ping 错误,我的第一个猜测是它没有将 Guid ID 传递给参数。那么根据我的表格出了什么问题?
我认为也许作为一种解决方案,我可以将它放在表单上的隐藏字段中?如何在 post 方法中收集该字段的内容?