【发布时间】:2011-10-28 16:19:05
【问题描述】:
我目前正在开发我的第一个 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");
}
“列表”视图是我可以通过编辑链接查看所有产品的地方。 问题是,如果我按下保存按钮,它会将我重定向到旧列表,而不是更新后的列表。我调试了我的项目,我确信更新方法可以正常工作并更新产品。
我的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());
}
那么我的错误在哪里?
【问题讨论】:
-
我猜更新的数据没有保存在数据库中。您是否在数据库级别验证过数据?
-
@Harald - List
是你的问题。它不会在请求之间持久化。 -
在 ASP.NET MVC 应用程序中传递数据 - msdn.microsoft.com/en-us/library/dd394711.aspx
-
如果您的 ProductRepository 不保存到数据库中,它究竟做了什么?
-
您需要向我们展示您的存储库代码。
标签: c# asp.net .net asp.net-mvc razor