1

我一直在使用 MVCScaffolding 功能为使用 EF4.1 存储的数据创建 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))

但是我得到一个“对象引用未设置为对象的实例”。尝试更新记录时出现异常。

我怎样才能让它在对我的模型或控制器的干扰最小的情况下工作?

4

1 回答 1

0

第一个应该是正确的。您是否在控制器返回视图之前检查了 Title 字段是否确实设置为数据库中存在的内容。还要检查拼写,例如文本后面的点。如果在您的数据库中“女士”。存在时,下拉菜单将在第一个项目上打开,因为列表中不存在 Ms.。

于 2011-07-27T09:58:22.237 回答