MVC ViewModel - Object Reference Not Set to Instance of an Object

只愿长相守 提交于 2019-12-12 06:29:54

问题


I receive an "Object reference not set to instance of an object" error while trying to convert a DataTable into a viewmodel containing rows and columns.

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

Model

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

The error occurs at myViewModel.Columns.Add(myColumnViewModel); I do not understand why this is happening since Ive instantiated each object that Im using here.


回答1:


Well, you never assigned the Columns property a value. Make sure you have instantiated it before attempting to add values to this list:

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


来源:https://stackoverflow.com/questions/15731440/mvc-viewmodel-object-reference-not-set-to-instance-of-an-object

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!