我有一个Employee
实体,我绑定到 MVC3/Razor 应用程序中的“编辑”视图。该Employee
实体具有 的属性OccupationTypeId
。OccupationTypeId
指向OccupationType
包含多个查找值的表。自然的选择是使用@Html.DropDownListFor
来呈现<select>
包含职业列表的标签。
表OccupationType
模式是相当标准的:Id, Name, Description, IsEnabled
. 由于可以禁用 OccupationTypes,我希望OccupationTypeId
下拉菜单仍然呈现禁用的选项,以便用户在禁用时始终可以看到他们的选择,但用户无法选择禁用的选项。换句话说,用户不能将现有选项更改OccupationTypeId
为禁用选项。
我考虑创建一个@Html
扩展方法来使用选项构建我的<select>
标签,并简单地将disabled
属性附加到禁用的选项。我认为这将是直截了当的...
但是,禁用的选定选项似乎不会回发到控制器方法。换句话说,Employee.OccupationTypeId
当我发布到编辑时将为空。
有什么方法可以改变这种行为,或者它是内置在 MVC 3 中的吗?我考虑过使用隐藏字段,但是如果需要 OccupationTypeId 并且我启用了验证怎么办?
有没有其他人遇到过这个?
谢谢