簡體   English   中英

ASP.NET MVC 3刪除Http發布

[英]ASP.NET MVC 3 Delete Http Post

我一直在網上尋找如何刪除丟失的getHttp 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");
    }

那是我的張貼方法。

@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方法中收集此字段的內容?

您為beginForm使用了錯誤的重載方法。 這里檢查正確的用法。 像這樣使用:

Html.BeginForm("action","controller", new { Id = item.ID}, FormMethod.Post);

要么

@using (Html.BeginForm("Delete", "Member", FormMethod.Post))
{
    @Html.Hidden("id", item.ID)
    <input type="image" src="Content/delete.png" />
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM