MVC ViewModel - 对象引用未设置为对象的实例

时间:2013-03-31 16:08:02

标签: asp.net-mvc-4 model viewmodel

我收到一个未设置为对象实例的"对象引用"尝试将DataTable转换为包含行和列的viewmodel时出错。

视图模型

public class ViewModel
{
        public List<ColumnViewModel> Columns { get; set; }
        public List<RowViewModel> Rows { get; set; }
}

    public class ColumnViewModel
    {
        public string Name { get; set; }
    }

    public class RowViewModel
    {
        public List<CellValueViewModel> Values { get; set; }
    }

    public class CellValueViewModel
    {
        public string Value { get; set; }
    }

模型

    ViewModel myViewModel = new ViewModel();
    CellValueViewModel myCellValueViewModel = new CellValueViewModel();
    RowViewModel myRowViewModel = new RowViewModel();
    foreach (DataColumn column in GridData.Columns)
    {
        ColumnViewModel myColumnViewModel = new ColumnViewModel();
        myColumnViewModel.Name = column.ColumnName;
        myViewModel.Columns.Add(myColumnViewModel);
    }

错误发生在myViewModel.Columns.Add(myColumnViewModel); 我不明白为什么会发生这种情况,因为我已经实例化了我在这里使用的每个对象。

1 个答案:

答案 0 :(得分:3)

好吧,您从未为Columns属性分配值。在尝试向此列表添加值之前,请确保已实例化它:

ViewModel myViewModel = new ViewModel();
myViewModel.Columns = new List<ColumnViewModel>();