Модель галереи с изображением и комментариями в MVC3 - PullRequest
0 голосов
/ 10 декабря 2011

Я только что научился загружать картинки и выводить их на экран. Модель.

Сейчас я пытаюсь добавлять комментарии к фотографиям. Это означает, что картинка может иметь больше комментариев. Поэтому я создал 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 Ответ

1 голос
/ 10 декабря 2011

Мне кажется, проблема в том, что вы нигде не инициализируете свойство GalleryEntries.Entries ... поэтому вы пытаетесь добавить galleryentry в список, который еще не существует, отсюда и исключение NullReferenceException.

Вы можете инициализировать записи в конструкторе:

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

    public GalleryEntries() {
        Entries = new List<GalleryEntry>();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...