Kri*_*s-I 5 asp.net-mvc asp.net-mvc-3
在我的模型中,我有一个国家列表: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" })
Run Code Online (Sandbox Code Playgroud)
不知道 ?
谢谢,
Update1:在数据库中,我保存了Id,但在下拉列表中作为"选项值"我使用代码,并且显示根据语言用户fiels ValueFR或ValueUS
Dar*_*rov 16
要在下拉列表中预选值,请在控制器操作中将相应的属性设置为此值:
model.Record.Customer.Country = "FR";
Run Code Online (Sandbox Code Playgroud)
就下拉列表生成而言,传递给SelectList构造函数的两个字符串参数表示分别对应于Value和Text的模型的属性名称.所以我想它应该更像这样:
@Html.DropDownListFor(
x => x.Record.Customer.Country,
new SelectList(Model.ListCountry, "Code", "ValueFR"),
new { id = "lbCountry" }
)
Run Code Online (Sandbox Code Playgroud)
在此示例中,我们将Code属性用作下拉列表中的值,将ValueFR属性用作Text.因此,在这种情况下,您必须确保将model.Record.Customer.Country属性设置Code为列表中存在的属性,并且下拉列表将自动预选该项.
另一种可能性使用以下SelectList构造函数,它允许您将选定的值指定为第 4 个参数:
@Html.DropDownListFor(
x => x.Record.Customer.Country,
new SelectList(Model.ListCountry, "Code", "ValueFR", "FR"),
new { id = "lbCountry" }
)
Run Code Online (Sandbox Code Playgroud)