在我看来,我目前有以下代码:
<%= Html.Hidden("Cart.CartID", Model.Cart.CartID) %>
当页面最初加载时,cartid为空,因此当我在页面上查看源代码时,值设置为“”。当我在页面上提交表单(添加产品)时,控制器代码将创建一个新的购物车,并使用强类型的ViewModel,我将购物车返回到带有购物车ID的视图中。问题是隐藏表单字段的值不会用新值更新。
我已经验证了我确实在传递一个在邮件中包含cartid的购物车实例。
这是一些控制器代码。控制器称为订单,视图称为创建:
[AcceptVerbs(HttpVerbs.Post)]
[MultiButton(MatchFormKey = "action", MatchFormValue = "AddProduct")]
public ActionResult Create(Product product, Cart cart, Customer customer)
{
if (cart.CartID == null)
{
Guid _cartIdentifier;
_cartIdentifier = Guid.NewGuid();
var _newCart = new Cart() { CartIdentifier = _cartIdentifier, CartDate = DateTime.Now };
cart = _cartRepository.Add(_newCart);
}
var _cartItem = new CartItem() { CartID = cart.CartID, ProductID = Convert.ToInt32(product.ProductID) };
_cartRepository.Add(_cartItem);
var _cartItems = _cartRepository.GetCartItems(new CartItem() { CartID = cart.CartID });
var viewState = new GenericViewState
{
Cart = cart,
CartItems = _cartItems
};
return View(viewState);
}
以前有人经历过这个问题吗?我该怎么修理它?
谢谢!