0
我有一個基本的ASP.NET MVC 2應用程序。我有添加和編輯行工作得很好,但刪除將無法正常工作。 Delete視圖在GET上獲得正確的記錄,但在回發時,傳遞的參數爲空,如CategoryID = 0中的所有空值。因此,沒有發現從數據庫中刪除對象並拋出異常。我怎樣才能得到正確的類別傳遞給HttpPost刪除操作?爲什麼傳遞給Delete操作的對象爲空?
下面是我在控制器中已經有了:
public ActionResult Delete(int id)
{
return View(_categoryRespository.Get(id));
}
[HttpPost]
public ActionResult Delete(Category categoryToDelete)
{
try
{
_categoryRespository.Delete(categoryToDelete);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
這是刪除視圖,正如我所說的正確地顯示在獲取數據:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MVCApp.Models.Category>" %>
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>Fields</legend>
<div class="display-label">CategoryID</div>
<div class="display-field"><%: Model.CategoryID %></div>
<div class="display-label">SectionName</div>
<div class="display-field"><%: Model.SectionName %></div>
<div class="display-label">CategoryName</div>
<div class="display-field"><%: Model.CategoryName %></div>
<div class="display-label">Content</div>
<div class="display-field"><%: Model.Content %></div>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
<input type="submit" value="Delete" /> |
<%: Html.ActionLink("Back to List", "Index") %>
</p>
<% } %>
感謝紅。該解決方案並不完全正確,但它讓我走上了正確的軌道。我無法將HttpPost Delete方法更改爲僅取int,因爲其他Delete方法已具有該簽名。所以我改變它爲一個int和一個字符串,併爲categoryID和categoryName添加隱藏字段。像冠軍一樣工作:) – witters 2010-06-24 14:08:56
重複簽名很好,沒有注意到。 – RedFilter 2010-06-24 17:09:01