Asp.net mvc 带表对象的MVC c#ViewModel

Asp.net mvc 带表对象的MVC c#ViewModel,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-viewmodel,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Viewmodel,我有一个这样的视图模型 public class NoteViewModel { public tblNotes tblnote { get; set; } } 在我的控制器中,我在完成构建后执行以下操作,以便我的控制器了解viewmodel: NoteViewModel viewModel= new NoteViewModel(); viewModel.tblnote.NoteModeID = 1234; // get error

我有一个这样的视图模型

    public class NoteViewModel
    {
      public tblNotes tblnote { get; set; }   
    }
在我的控制器中,我在完成构建后执行以下操作,以便我的控制器了解viewmodel:

    NoteViewModel viewModel= new NoteViewModel();

    viewModel.tblnote.NoteModeID  = 1234; // get error here

    return PartialView(viewModel);
但我得到了以下错误:

{“对象引用未设置为对象的实例。”}


什么是
tblNotes
?如果它是引用类型,则在执行第一行代码后,
viewModel.tblNote
null

什么类型
tblNotes
?(旁注:在C#中,按照惯例,类名应以大写字母开头。)

由于这是一个自定义类型,因此也是一个引用类型,因此其默认值为
null
。因此,当您实例化一个新的
NoteViewModel
时,除非另有规定,否则它会将其所有成员设置为默认值。由于该值为
null
,因此不能在此处使用:

viewModel.tblnote.NoteModeID = 1234;
在不了解更多类型的情况下,简单的答案是在视图模型的构造函数中实例化该成员:

public class NoteViewModel
{
    public tblNotes tblnote { get; set; }

    public NoteViewModel()
    {
        tblnote = new tblNotes();
    }
}
这样,在创建视图模型时,对象将被实例化,因此您可以使用它