У меня есть базовое приложение 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();
}
}
Это представление Удалить, которое, как я уже сказал, правильно отображает данные в GET:
<%@ 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>
<% } %>