2014-02-05 46 views
6

你好,我想做一個簡單的在線雜誌,我開始當用戶點擊按鈕addtoCart其中的mvc - 存儲列表會話,然後檢索其值

部分

我的模型車擁有兩個屬性 - 產品和數量

public class Cart 
{ 

public ProductLanguages Product { get; set; } 
     public int Quantity { get; set; } 

} 

所以在我basketViewModel(類)我AddProductToCart方法我想補充的產品裏面,細節這是我從數據庫中列出的屬性來獲取。

所以我無法弄清楚這個問題:在控制的某個地方,我應該將這個列表保存在一個會話中,並且如果用戶在下一次從這個會話中獲取列表時添加更多產品。如果有人可以給我一個控制器的例子,可以做到這一點的索引行動,我會非常感激。

public class BasketViewModel 
    { 

     private readonly IProductLanguagesRepository prodlanRepository; 
     public List<Cart> listProductsinBasket { get; set; } 
     public BasketViewModel() : this(new ProductLanguagesRepository()) 
     { 

     } 



    public BasketViewModel(IProductLanguagesRepository prodlanRepository) 
    { 
     this.prodlanRepository = prodlanRepository; 
    } 
    public void AddProductToCart(int id,int quantity) 
    { 
     ProductLanguages nwProduct = prodlanRepository.GetProductDetails(id); 
     if (nwProduct != null) 
     { 
      Cart cr = new Cart(); 
      cr.Product = nwProduct; 
      cr.Quantity = quantity; 
      listProductsinBasket.Add(cr); 

     } 
+0

不要把你的倉庫裏面視圖模型 - 做你的控制器內。你的viewmodel應該只有「listProductsinBasket」。 @KindzaDza對於會話是正確的,你應該標記他/她的答案。 – free4ride

回答

4

商店:

HttpContext.Session["list"] = new List<object> { new object(), new object() }; 

檢索:

var list = HttpContext.Current.Session["list"] as List<object>; 
+0

感謝您的回覆 - 但我有另一個問題-http://stackoverflow.com/questions/21596123/why-my-session-in-the-view-control-is-null –

+0

你正在做的是什麼這是一種不好的做法,可能會對安全和性能造成影響。爲什麼不在會話中存儲唯一的籃子ID並在控制器中檢索相關項目? – Random

相關問題