2011-05-01 131 views
1

我一直在使用MVCScaffolding功能使用存储在我的数据EF4.1MVC3模型绑定到选择列表

它非常适用基本方案并结合所有的数据到文本框来创建一个CRUD UI。

但是,我希望我的“Person”对象的“Title”属性绑定到选择列表。我希望不必创建视图模型,而是坚持视图绑定到实际的人员模型。

public class Person { 
    public string Title { get; set; } 
    ....... 

这是在我看来,但选定的项目不能正确绑定。它总是显示“先生”作为选定的项目,即使实际数据可能不同。

@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)) 

但我得到一个 “对象引用不设置到对象的实例。”尝试更新记录时发生异常。

如何让我的模型或控制器在最小的中断条件下工作?

回答

0

第一个应该是正确的。如果标题字段确实设置为数据库中存在的内容,您是否在控制器返回视图之前检查过?还请检查拼写和例如文字背后的一个点。如果在你的数据库中“女士”目前,下拉菜单将在第一项中打开,因为女士不在列表中。