我正在尝试填充下拉列表的选定值。当我将我的ViewModel上的选定值设置为字符串时,它完美地工作。当我将选定的value属性设置为子类的一部分时,它将失败:
@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;}
}
您是否建议我将JMASettings的内容复制并粘贴到我的设置视图模型类中?
答案 0 :(得分:2)
不确定。您的视图模型可以包含您喜欢的任何内容。
不一定。您首次尝试使用model.JMASettings.CustomerID
无法显示所选值时,没有任何功能原因。如果不是,那么还有其他一些问题。您可能无法在CustomerID
实例上正确填充JMASettings
属性,或ModelState
中的某些内容可能会覆盖您设置的内容。 ModelState
由来自Request
,ViewData
和ViewBag
,第一的值组成,并且仅来自Model
的值作为最后的手段
答案 1 :(得分:0)
在ViewModel中包含类可以吗?
是的,没关系,但可能没有必要。
您是否建议我将JMASettings的内容复制并粘贴到我的设置视图模型类中?
是的我建议将其移动到单个模型,因为子类将要求您创建自定义模型绑定器。