在我的模型中,我有一个国家/地区列表:Model.ListCountry
。 Country类有一些字段:
Id,Code,ValueFR,ValueUS
在我的模型中,我有一位客户,此客户有一个国家:Model.Customer.Country
我试过了:
@Html.DropDownListFor(x => x.Record.Customer.Country, new SelectList(Model.ListCountry, "Code", "FR"), new { id = "lbCountry" })
不知道?
谢谢,
UPDATE1: 在数据库中,我保存了Id,但在下拉列表中显示为“选项值”,我使用代码,并根据语言用户显示值为ValueFR或ValueUS
答案 0 :(得分:16)
要在下拉列表中预选值,请在控制器操作中将相应的属性设置为此值:
model.Record.Customer.Country = "FR";
就下拉列表生成而言,传递给SelectList constructor的两个字符串参数表示分别对应于Value和Text的模型的属性名称。所以我想它应该更像这样:
@Html.DropDownListFor(
x => x.Record.Customer.Country,
new SelectList(Model.ListCountry, "Code", "ValueFR"),
new { id = "lbCountry" }
)
在此示例中,我们将Code
属性用作下拉列表中的值,将ValueFR
属性用作Text。因此,在这种情况下,您必须确保将model.Record.Customer.Country
属性设置为列表中存在的某些Code
,并且下拉列表将自动预选该项。
另一种可能性使用以下SelectList constructor,它允许您将所选值指定为4 th 参数:
@Html.DropDownListFor(
x => x.Record.Customer.Country,
new SelectList(Model.ListCountry, "Code", "ValueFR", "FR"),
new { id = "lbCountry" }
)