2011-12-09 6 views
0

写真をアップロードしてビューモデルで表示する方法を学んだだけです。MVC3の画像とコメント付きギャラリーモデル

今、私は写真にコメントを追加しようとしています。つまり、画像にコメントを増やすことができます。 "ギャラリー"と "コメント"という2つのテーブルを作成しました。彼らは.. 私のモデルは

 

public class GalleryEntries 
    { 
     public List Entries { get; set; } 
    } 

    public class GalleryEntry 
    { 
     public Gallery GalleryImage { get; set; } 
     public List Comments { get; set; } 
    } 

...そのように見え、コントローラはそう見えます..

 

GalleryDataContext GalleryDB = new GalleryDataContext(); 

     public ActionResult Index() 
     { 
      GalleryEntries model = new GalleryEntries(); 
      GalleryEntries galleryentries = new GalleryEntries(); 

      foreach (Gallery gallery in GalleryDB.Galleries) 
      { 
       GalleryEntry galleryentry = new GalleryEntry(); 
       galleryentry.Comments = GalleryDB.Comments.Where(c => c.BildID == gallery.ImageID).ToList(); 
       galleryentry.GalleryImage = gallery; 
       galleryentries.Entries.Add(galleryentry); 
      } 

      return View(model); 
     } 

しかし、それは動作しません「一対多」によって関連しています。 :

 "galleryentries.Entries.Add(galleryentry)
の行に「オブジェクトのインスタンスにオブジェクトリファレンスが設定されていません」というメッセージが表示されます。

答えて

1

GalleryEntries.Entriesプロパティを初期化しないどこでも...あなたがそれ故にとNullReferenceException、まだ存在しないリストにgalleryentryを追加しようとしている

をあなたは、コンストラクタ内のエントリを初期化できます。

public class GalleryEntries 
{ 
    public IList<GalleryEntry> Entries { get; set; } 

    public GalleryEntries() { 
     Entries = new List<GalleryEntry>(); 
    } 
} 
関連する問題