MVCScaffolding 機能を使用して、EF4.1 を使用して保存されたデータの CRUD UI を作成しています。
基本的なシナリオではうまく機能し、すべてのデータをテキスト ボックスにバインドします。
ただし、"Person" オブジェクトの "Title" プロパティを選択リストにバインドする必要があります。ビュー モデルを作成する必要はなく、ビューを実際の人物モデルにバインドすることに固執することを望んでいました。
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))
しかし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。レコードを更新しようとすると例外が発生します。
モデルやコントローラーへの影響を最小限に抑えて、これを機能させるにはどうすればよいですか?