Hallo Ich versuche, ein einfaches Online-Magazin zu machen, und ich kam zu dem Teil, in dem, wenn der Benutzer klickt addToCart TasteMvc - speichern Sie eine Liste in der Sitzung und dann seinen Wert abrufen
Mein Modell Wagen hält zwei Eigenschaften - Produkt und Menge
public class Cart
{
public ProductLanguages Product { get; set; }
public int Quantity { get; set; }
}
Also in meinem basketViewModel (Klasse) in meiner AddProductToCart Methode, die ich ein Produkt hinzufügen, die Details, für die ich aus der Datenbank in Eigentum der Liste.
So kann ich dieses Problem nicht herausfinden: Irgendwo in der Kontrolle sollte ich diese Liste in einer Sitzung speichern und wenn der Benutzer mehr Produkte das nächste Mal ich sollte die Liste von dieser Sitzung erhalten. Wenn jemand mir ein Beispiel controler mit einer Indexaktion geben kann, die das tun kann, wäre ich wirklich dankbar.
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);
}
Legen Sie Repositories in Ihrem Ansichtsmodell nicht - tun es in Ihrem Controller. Ihr Ansichtsmodell sollte nur "listProductsinBasket" haben. @KindzaDza hat Recht bezüglich der Sitzung und Sie sollten seine/ihre Antwort markieren. – free4ride