Я работаю над одной из моих первых ASP MVC-программ на данный момент.
Программа должна показать мне список товаров, а под ссылкой под названием товара должна быть возможность отредактировать товар. Пока проблем нет.
@model MVC3Demo.Product
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm("Save", "Product"))
{
<div>
<input type="hidden" id="ID" name="ID" value="@Model.ID" />
ProduktID @Model.ID
</div>
<div>
Produktname <input id="Name" name="Name" type="text" value=@Model.Name />
</div>
<div>
Preis <input id="Price" name="Price" type="text" value=@Model.Price />
</div>
<div>
<input type="submit" value="Speichern"/>
</div>
}
Теперь я написал Save
метод действия, который должен обновить мои данные:
public ActionResult Save(Product p)
{
ProductRepository rep = new ProductRepository();
rep.Update(p);
return RedirectToAction("List");
}
В «Списке» можно просмотреть все продукты со ссылкой для редактирования.
Проблема в том, что если я нажимаю кнопку сохранения, он перенаправляет меня к старому списку, а не к обновленному. Я отладил свой проект, и я уверен, что метод update работает правильно и обновляет продукт.
Мое List
действие:
@model IEnumerable<MVC3Demo.Product>
@{
ViewBag.Title = "List";
}
<h2>List</h2>
<ul>
@foreach (MVC3Demo.Product p in Model)
{
<li>@p.Name @Html.ActionLink("bearbeiten", "Edit", "Product", p, null)</li> //new{ ID = p.id}
}
</ul>
Поскольку вы спросили, вот действие List
:
public ActionResult List()
{
ProductRepository rep = new ProductRepository();
return View(rep.GetAll());
}
Так в чем же может быть моя ошибка?