1

我需要帮助理解为什么我在这里得到一个空对象引用:

我有 2 个模型:

public class loadViewModel
{
    public importacaoConfig importacaoConfig { get; set; }
}

public class importacaoConfig
{
    public List<DocTypeModel> tipo { get; set; }
}

我是我的控制器,我正在将一个列表传递给模型:

gedaiapp.Models.loadViewModel model = new gedaiapp.Models.loadViewModel();    
model.importacaoConfig.tipo = obj; -> Here obj is of type List<DocTypeModel>

这给了我:

System.NullReferenceException: Object reference not set to an instance of an object.

我已经检查过了,obj 列表有 3 个元素。这里哪个引用为空?我不明白。

4

3 回答 3

4

问题是这样的:

model.importacaoConfig.tipo

还没有实例化 importacaoConfig,所以它是空的(因此你为什么会在该行得到异常。

添加此行以实例化它(在您现有的两条线之间):

model.importacaoConfig = new importacaoConfig();

所以你的控制器将是:

gedaiapp.Models.loadViewModel model = new gedaiapp.Models.loadViewModel();
model.importacaoConfig = new importacaoConfig();    
model.importacaoConfig.tipo = obj;
于 2013-01-29T12:27:45.130 回答
1

您应该真正检查调试器,但我会假设以下内容为空:

model.importacaoConfig

因为您在创建loadViewModel.

您需要有一个执行以下操作的构造函数:

public loadViewModel()
{
    importacaoConfig = new importacaoConfig();
}

我还考虑为类赋予不同的变量名称。

于 2013-01-29T12:27:34.037 回答
0

尝试

importacaoConfig.tipo=new List<DocTypeModel>();

你还没有初始化tipo

于 2013-01-29T12:27:58.267 回答