Как передать массивы из модели для просмотра? - PullRequest
0 голосов
/ 06 ноября 2011

Я только изучаю ASP.NET MVC 3, и в последнее время я много раз пытался передать массивы / списки / ICollections и т. Д., Но не смог. каждый раз список был пуст.

Например, текущий проект:

Модель:

public class Video
{
    public int VideoID { get; set; }
    public string Name { get; set; }
    public ICollection<string> Tags { get; set; }
}

Инициализатор - Семя:

    protected override void Seed(DatabaseContext context)
    {
        var videos = new List<Video>
        {
            new Video {
                Name = "Video01",
                Tags = new List<string> { "tag1", "tag2" },
        };

        videos.ForEach(s => context.Videos.Add(s));
        context.SaveChanges();

        base.Seed(context);
    }

В представлении: Я получаю свойство Name, но Tags полностью пусты.

В отладке я получаю Tags - Count: 0.

Это не первый раз, когда это случается со мной, если честно, это происходит каждый раз, когда я пытаюсь передать подобные вещи. Немного информации о проекте:

ASP.NET MVC 3, Entity-Framework: Code First, SqlServerCe.4.0.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Создание тега сущности

public class Video
{
    public int VideoID { get; set; }
    public string Name { get; set; }
    public ICollection<Tag> Tags { get; set; }
}

public class Tag
{
  public int TagId { get; set; }
  public int VideoId { get; set; }
  public string TagText { get; set; }
}

или сохраняйте теги в одном поле, разделенном запятой / точкой с запятой или любым другим, подходящим для вашего решения

0 голосов
/ 06 ноября 2011

По умолчанию Entity Framework не загружает ассоциации сущности, вам нужно указать это явно:

var videos = context.Videos.Include("Tags");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...