私はgetを見逃してHttpPostを削除する方法をウェブで探していましたが、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");
}
それが私のPostメソッドです。
@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)'のnull許容型ではないタイプ'System.Guid'のパラメータ'id'のnullエントリが含まれています。オプションパラメータは、参照型またはnull許容型であるか、オプションパラメータとして宣言されている必要があります。パラメータ名:パラメータ
そのため、その前にエラーをpingするため、メソッドを中断することはできません。最初の推測では、GuidIDがパラメーターに渡されていません。それで、私のフォームに基づいて、何がうまくいかないのですか?
おそらく解決策として、フォームの隠しフィールドに配置できると思いましたか?postメソッドでこのフィールドの内容をどのように収集しますか?