MVC c#ViewModel与表对象

时间:2012-07-23 15:58:46

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-viewmodel

我有一个viewmodel

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

在我的控制器中,我在完成构建后执行以下操作,以便我的控制器知道viewmodel:

    NoteViewModel viewModel= new NoteViewModel();

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

    return PartialView(viewModel);

我收到以下错误:

  

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

tblNotes是什么类型的? (附注:在C#类名称中应以大写字母开头作为惯例。)

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

viewModel.tblnote.NoteModeID = 1234;

在不了解您的类型的情况下,简单的答案是在视图模型的构造函数中实例化该成员:

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

    public NoteViewModel()
    {
        tblnote = new tblNotes();
    }
}

这样,只要创建视图模型,对象就会被实例化,因此您可以使用它。