0

我有一个这样的视图模型

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

在我的控制器中,我在构建之后执行以下操作,以便我的控制器知道视图模型:

    NoteViewModel viewModel= new NoteViewModel();

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

    return PartialView(viewModel);

我收到以下错误:

{“你调用的对象是空的。”}

4

2 回答 2

0

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

于 2012-07-23T16:01:55.460 回答
0

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

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

viewModel.tblnote.NoteModeID = 1234;

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

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

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

这样,在任何时候创建视图模型时都会实例化对象,因此您可以使用它。

于 2012-07-23T16:03:00.303 回答