簡體   English   中英

未設置ASP.NET MVC對象引用(向模型添加值)

[英]ASP.NET MVC Object reference not set ( adding value to model)

我的模型和控制器有愚蠢的問題。 我試圖在一個視圖上使用部分視圖顯示兩個模型。

當我在控制器中填充模型時,我收到此消息對象引用未設置..但我不知道為什么?

這是我的控制器和型號:

控制器:

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; }
    }

}

錯誤: 在此輸入圖像描述

您尚未在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM