2015-07-04 32 views
1

我的模型和控制器有一個愚蠢的問題。 我想用部分視圖在一個視圖上顯示兩個模型。未設置ASP.NET MVC對象引用(爲模型添加值)

當我在控制器中填充模型我得到這個消息對象引用沒有設置.. 但我不知道爲什麼?

這裏是我的控制器和模型:

控制器:

public ActionResult MultiView() 
{ 

    ChartItem c = new ChartItem(); 
    c.Name = "Chart"; 

    ChartItem c1 = new ChartItem(); 
    c1.Name = "Chart1"; 

    List<ChartItem> a = new List<ChartItem>(); 
    a.Add(c); 
    a.Add(c1); 

    ListItem l = new ListItem(); 
    l.Name = "List"; 
    ListItem l1 = new ListItem(); 
    l1.Name = "List1"; 

    List<ListItem> b = new List<ListItem>(); 
    b.Add(l); 
    b.Add(l1); 

    MultiModel m = new MultiModel(); 
    m.ChartItems.Add(c); 
    m.ListItems.AddRange(b); 

    List<MultiModel> model = new List<MultiModel>(); 
    model.Add(m); 



    return View(model); 
} 

型號:

namespace MVCPArtial.Models 
{ 
    public class ChartItem 
    { 
     public string Name { get; set; } 
    } 
} 

型號:

namespace MVCPArtial.Models 
{ 
    public class ListItem 
    { 
     public string Name { get; set; } 
    } 
} 

型號:

namespace MVCPArtial.Models 
{ 
    public class MultiModel 
    { 
     public List<ChartItem> ChartItems { get; set; } 
     public List<ListItem> ListItems { get; set; } 
    } 

} 

錯誤:enter image description here

回答

3

您還沒有MultiModel初始化集合。無論是添加默認的構造函數

public class MultiModel 
{ 
    // add parameterless constructor 
    public MultiModel() 
    { 
     ChartItems = new List<ChartItem>(); 
     ListItems = new List<ListItem>)(); 
    } 
    public List<ChartItem> ChartItems { get; set; } 
    public List<ListItem> ListItems { get; set; } 
} 

還是在MultiView()方法,初始化集合

MultiModel m = new MultiModel(); 
m.ChartItems = new List<ChartItem>(); // add this 
m.ListItems = new List<ListItem>)(); // add this 
m.ChartItems.Add(c); 
m.ListItems.AddRange(b); 
+0

大泉,謝謝你很多! – Nezir

相關問題