使用会话状态概念在asp.net mvc 2.0中存储特定时间的数据

时间:2010-11-23 06:00:42

标签: asp.net asp.net-mvc-2

我正在使用asp.net mvc 2.0来实现购物车应用程序。我的情况是, 我有一个订单页面,我将产品添加到Cart.Below它将显示购物车总数。接下来我将进入购物车页面删除或编辑项目。在此页面中它将显示相同的购物车总数如在订单页面中。

但是如果我再次返回订单页面再向购物车订购更多产品,则订单页面中的购物车总数显示为0金额。 这是我的购物车控制器操作方法,

public ActionResult ShoppingCart(int eventID)         {    事件e = eRepository.GetEvent(eventID);    var cart = Stalbans.Models.ShoppingCart.GetCart(this.HttpContext);

 // Set up our ViewModel

var viewModel = new ShoppingCartViewModel   {      CartItems = cart.GetCartItems(),       CartTotal = cart.GetTotal()   }; TempData [“data”] = cart.GetTotal();  if(viewModel.CartItems.Count!= 0)  { List listp = pRepository.GetProductsForEvent(e.EventID);  foreach(listp中的字符串项)   {      ViewData [item] = pRepository.GetProductsWithProdNameAndEventID(e.EventID,item);    ViewData [“sizelist”] = listp;组g = new GroupRepository()。GetGroup(new EventRepository()。GetEvent(e.EventID).GroupID);          ViewData [“group”] = g;  }

如果(Request.IsAuthenticated)  ViewData [“returnUrlAfterLogOff”] = HttpContext.Request.RawUrl;  ViewData [“EventOrders”] = oRepository.GetOrderedEvents(User.Identity.Name);  ViewData [“eventModel”] = e;

返回View(viewModel);

因此,一旦我从订单页面进入购物车页面并再次返回订单页面,它必须显示相同的购物车总数。 实际上数据会保留在购物车总数中但不会显示。因为如果再添加一个商品,其金额将添加到existimng购物车总数中,然后显示当前的购物车总数。 因此,我第一次点击它,它必须显示购物车总价值中已存在的购物车总数。 那么这样做的最佳方法是什么。我必须使用会话状态或稍微请告诉我。

提前致谢,

1 个答案:

答案 0 :(得分:0)

您可能需要将购物车存储到会话中,以便在页面重定向之间保留添加的产品。