【发布时间】:2015-06-24 21:47:27
【问题描述】:
我正在使用会话状态开发一种简单的购物车。我让一切正常,但我尝试添加添加相同项目的其他单元的功能。我有一个带有 CartItems 列表的 Cart 类。每个 CartItem 都有 Product 及其数量。使用 GET 方法的视图得到了一个很好的更新的购物车和会话(除了数量,我打算用 POST 请求来修复)。
我尝试了下面的路径,但数量总是停留在 0。我在这里看到了类似的帖子,可能解决了同样的问题。
http://stackoverflow.com/questions/23363813/why-isnt-my-viewmodel-updating
但它需要我还没有接触过的 Knockout js(并且需要在短时间内完成我的学校项目)。如果有关于淘汰赛的想法,我将不胜感激。为了清楚起见,下面是一个简化的代码。
控制器
[HttpPost]
public ActionResult Show(CartViewModel cvm)
{
Cart cart = (Cart)Session["Cart"];
cvm.CartItems = cart.CartItems;
StringBuilder sb = new StringBuilder();
if (TryUpdateModel(cvm))
{
foreach (CartItem c in cvm.CartItems)
{
sb.Append(c.Product.Name); // works
sb.Append(c.Quantity); // always 0 :(
}
}
return RedirectToAction("Index", "Home");
}
查看
@model Project.ViewModels.CartViewModel
@using (Html.BeginForm())
{
foreach (var item in Model.CartItems)
{
@item.Product.Name
<img src="@item.Product.Image" alt="@item.Product.Name"/>
@Html.EditorFor(i => item.Quantity)
}
}
<input type="submit" value="Send" />
}
【问题讨论】:
标签: asp.net-mvc razor