MVC DropDownListFor -选定值视图模型类
本文关键字:视图 模型 DropDownListFor MVC | 更新日期: 2023-09-27 18:07:18
我正在尝试填充下拉列表的选定值。当我将ViewModel上的选定值设置为字符串时,它可以完美地工作。当我将所选值属性设置为子类的一部分时,它失败了:
@Html.DropDownListFor(model => model.JMASettings.CustomerID, Model.CustomerIDList)
这个方法有效:
@Html.DropDownListFor(model => model.CustomerID, Model.CustomerIDList)
是否可以在ViewModel内部拥有类?
public class SettingsViewModel { public SettingsViewModel() { JMASettings = new JMASettings(); } public JMASettings JMASettings {get; set;} } public class JMASettings { public string CustomerID {get; set;} }
你建议我复制并粘贴jmassettings的内容到我的设置视图模型类吗?
-
确定。你的视图模型可以包含任何你喜欢的东西
-
不一定。使用
model.JMASettings.CustomerID
的第一次尝试不显示所选值没有功能上的原因。如果不是,那就有别的问题了。您可能没有正确地在JMASettings
实例上填充CustomerID
属性,或者ModelState
中的某些东西可能会覆盖您设置的内容。ModelState
由Request
,ViewData
和ViewBag
的值组成,首先,最后才使用Model
的值。
在ViewModel里面有类是可以的吗?
是的,这是可以的,但可能不是必须的。
你是否建议我复制并粘贴jmassettings的内容到我的设置视图模型类中?
是的,我建议将其移动到单个模型,因为子类将要求您创建自定义模型绑定器。