Я использовал функцию MVCScaffolding для создания пользовательского интерфейса CRUD для моих данных, хранящихся с использованием EF4.1.
Он хорошо подходит для базовых сценариев и привязывает все данные к текстовым полям.
Однако я хочу, чтобы свойство "Title" моего объекта "Person" было привязано к списку выбора. Я надеялся не создавать модель представления, а придерживаться привязки представления к фактической модели человека.
public class Person {
public string Title { get; set; }
.......
Это на мой взгляд, но выбранный элемент не привязывается правильно. Он всегда показывает "Mr" как выбранный элемент, даже если фактические данные могут отличаться.
@Html.DropDownListFor(model => model.Title, new SelectList(new[] { "Mr", "Mrs", "Ms", "Miss", "Sir", "Dr", }, Model.Title))
Это тоже не работает:
@Html.DropDownList("Title", new SelectList(new[] { "Mr", "Mrs", "Ms", "Miss", "Sir", "Dr", }, Model.Title))
Однако это делает:
@Html.DropDownList("TitleX", new SelectList(new[] { "Mr", "Mrs", "Ms", "Miss", "Sir", "Dr", }, Model.Title))
Но я получаю «Ссылка на объект не указывает на экземпляр объекта». исключение при попытке обновить запись.
Как я могу заставить это работать с минимальным нарушением работы моей модели или контроллера?