2012-04-23 17 views
5

セッションに新しい「注文」を追加しようとしています。私はSESSION_STARTの下で私のGlobal.aspxファイルでセッションを作成開始:私のログインページでこのコードでNullリファレンス例外の原因は何ですか?

Session.Add("Cart", new WebShopData.Order()); 

私は新しいセッションを行います。

Session["userID"] = "User"; 
     ((Order)Session["Cart"]).UserID = userID; 

そして、私の店のページで、私はものを追加したいですセッション:

if ((Order)Session["Cart"] != null) 
((Order)Session["Cart"]).OrderRow.Add(new OrderRows({ArticleID = 2, Quantity = 1) }); 

この最後の行では、私はnullリファレンス例外を取得します。なぜそれができますか?ここで


私の二つのクラスです:あなたが提出OrderRowがnullの新しい注文を作成すると

public class Order 
    { 
    public List<OrderRows> OrderRow { get; set; } 
    public string Address { get; set; } 
    public string City { get; set; } 
    public string Zip { get; set; } 
    public int UserID { get; set; } 
    } 

    public class OrderRows 
    { 
    public int ArticleID { get; set; } 
    public int Quantity { get; set; } 

    public override string ToString() 
    { 
      return string.Format("Artikel: {0}, Antal: {1}.\n", ArticleID, Quantity); 
    } 
    } 

答えて

4

使用する前に、OrderRowのインスタンスを作成する必要があります。私はそうのようなコンストラクタでそれをやって示唆...

ご注文クラスに

public class Order { 
    ....other stuff... 

    public Order() { 
     OrderRow = new List<OrderRows>(); 
    } 
} 
これを追加します
2

。 OrderコンストラクタでOrder rowを初期化する必要があります。

関連する問題