OK, z tamtym błędem sobie poradziłem. Teraz stanąłem na innym błędzie, który także występuje podczas dodawania produktu do koszyk:
Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
Opis: Podczas wykonywania bieżącego żądania sieci Web wystąpił nieobsługiwany wyjątek. Aby uzyskać dodatkowe informacje o błędzie i miejscu jego występowania w kodzie, przejrzyj ślad stosu.
Szczegły wyjątku: System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
Błąd źrdła:
Wiersz 72: public static void AddProductToCart(Product theProduct)
Wiersz 73: {
Wiersz 74: ShopManage.ShoppingCart.Add(theProduct);
Wiersz 75: }
Wiersz 76:
Plik źrdłowy: C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\App_Code\BusinessLogic\ShopManager.cs Wiersz: 74
Ślad stosu:
[NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.]
e_shop.ShopManage.AddProductToCart(Product theProduct) in C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\App_Code\BusinessLogic\ShopManager.cs:74
e_shop.Shop.productDetail.btnAddToCart_Click(Object sender, EventArgs e) in C:\Users\Luke\Documents\Visual Studio 2010\Projects\e-shop\e-shop\Shop\productDetail.aspx.cs:23
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
Kod klasy ShopManage:
public static void AddProductToCart(Product theProduct)
{
ShopManage.ShoppingCart.Add(theProduct);
}
Kod klasy ShoppingCart
public void Add(Product theProduct)
{
foreach (OrderedProduct existingProduct in _items)
{
if (theProduct.Id == existingProduct.ProductId)
{
existingProduct.Quantity += 1;
return;
}
}
OrderedProduct myOrderedProduct = new OrderedProduct(theProduct, 1);
_items.Add(myOrderedProduct);
}