我正在開發一種使用會話狀態的簡單類型的購物車。我得到了一切工作,但我嘗試添加添加同一項目的其他單位的功能。我有一個Cart類,它帶有一個CartItems列表。每個CartItem都有產品及其數量。使用GET方法的視圖獲得了一個很好更新的購物車和會話(除了量,我打算用POST請求修復)。發佈附加信息來更新ViewModel - 在購物車中添加數量
我試過下面的路徑,但數量始終停留在0.我在這裏看到一個類似的帖子,這可能會增加同樣的問題。
http://stackoverflow.com/questions/23363813/why-isnt-my-viewmodel-updating
但它需要淘汰賽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" />
}
謝謝斯蒂芬,這有助於! – Turo