2011-11-06 89 views
0

我剛剛學習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。

回答

0

克林實體標籤

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

默認情況下,實體框架不會加載實體的關聯,你需要明確指定:

var videos = context.Videos.Include("Tags"); 
+0

我在哪裏寫它? (我怎麼寫它+視頻列表),當你說ef不加載實體的關聯時,你是什麼意思的協會? 謝謝 – MasterMastic

+0

事實上,我誤解了這個問題,我認爲標籤也是EF實體......你是如何映射「標籤」集合的? –

+0

初學者,你能解釋一下你在問什麼嗎?我認爲你的意思是模型,如果是這樣的話,那就是問題所在。 – MasterMastic

相關問題