MVC C# 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 ответа
Какой тип tblNotes
? (Примечание: в C# имена классов должны начинаться с заглавной буквы).
Так как это пользовательский тип и, таким образом, ссылочный тип, его значение по умолчанию null
, Поэтому, когда вы создаете новый экземпляр NoteViewModel
он собирается установить для всех своих членов значения по умолчанию, если не указано иное. Поскольку это значение null
Вы не можете использовать это здесь:
viewModel.tblnote.NoteModeID = 1234;
Не зная больше о ваших типах, простой ответ - просто создать экземпляр этого члена в конструкторе модели представления:
public class NoteViewModel
{
public tblNotes tblnote { get; set; }
public NoteViewModel()
{
tblnote = new tblNotes();
}
}
Таким образом, объект будет создаваться каждый раз при создании модели представления, поэтому вы можете использовать его.
Что именно tblNotes
? Если это ссылочный тип, чем viewModel.tblNote
является null
после выполнения первой строки кода.