В экземпляре объекта не задана ссылка на объект

В моем приложении у меня есть следующее сообщение: Ссылка на объект не указывает на экземпляр объекта.

@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)

Выпадающий список содержит простые строки (названия людей). Когда вы выбираете заголовок, этот заголовок должен быть возвращен моей модели. Код контроллера:

ViewData["PersonTitle"] = new SelectList(new[] { "Dhr.", "Mevr." });

Почему это не работает?

Изменить: цель состоит в том, чтобы изменить

@Html.EditorFor(model => model.Person.Title)

во что-то вроде этого

@Html.DropDownList("Title",ViewData["PersonTitle"] as SelectList, Model.Person.Title)

person Thomas    schedule 29.03.2011    source источник
comment
Возможный дубликат Что такое NullReferenceException и как мне исправить?   -  person tom redfern    schedule 11.01.2017


Ответы (2)


Model.Person равно нулю. Вам нужно выяснить, почему это не заселено. Наиболее распространенной причиной будет отсутствие вывода в форму, поэтому она не будет отправлена ​​обратно.

person Aliostad    schedule 29.03.2011
comment
хорошо, но мне нужно заменить эту часть @Html.EditorFor(model => model.Person.Type) выпадающим списком. И значение этого раскрывающегося списка должно быть отправлено в то же место, что и редактор. (Модель.Человек.Тип) - person Thomas; 29.03.2011
comment
Вместо "Title" должно быть "Person.Title" - person Aliostad; 29.03.2011
comment
Название после выпадающего списка? это просто имя выпадающего списка. Во избежание недоразумений, это model.person.title, а НЕ model.Person.Type (больше не могу изменить свой комментарий). Если я использую editorfor(model=> model.Person.Type) , он отправляет значение того, что я написал, в модель - person Thomas; 29.03.2011
comment
нашел это: пришлось использовать @html.dropdownlistfor - person Thomas; 29.03.2011
comment
Да, использование универсальных расширений в 100 раз лучше :) Я не рекомендовал его вам, так как вы использовали ViewData, но теперь хорошо, что вы его изменили. - person Aliostad; 29.03.2011

мне пришлось использовать @html.dropdownlistдля

person Thomas    schedule 29.03.2011