无论出于何种原因,我的 Html.DropDownListFor 的默认值不起作用:
@Html.DropDownListFor(model => model.DomainList,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
知道为什么吗?
更新
根据下面的答案,我将代码更新为以下内容:
@Html.DropDownListFor(model => model.SelectedDomain,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SelectedDomain),
"Select a Domain",
new { @class = "form-control" })
最佳答案
试试这个:
在您的 ViewModel 中,添加一个整数来存储选定的域 id:
public int SelectedDomainId { get; set; }
将 DropDownListFor 更改为:
@Html.DropDownListFor(model => model.SelectedDomainId,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
现在,在您的回发中,选定的 id 将发布在 SelectedDomainId 中。
或者,您可以将单个域对象添加到您的 VM(以指示选择了哪一个):
public Domain SelectedDomain { get; set; }
并将您的 DropDownListFor 更改为:
@Html.DropDownListFor(model => model.SelectedDomain,
new SelectList(Model.DomainList, "DomainId", "Name", Model.SingleDomain.DomainId),
new { @class = "form-control" })
我通常使用选定的 ID,但我认为两者都应该工作
这是另一个很好的例子:
关于asp.net-mvc-5 - 为什么我的 DropDownListFor 的默认值不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21077009/