DropDownListFor ...选中的值

时间:2011-03-20 21:32:30

标签: 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" })

不知道?

谢谢,

UPDATE1: 在数据库中,我保存了Id,但在下拉列表中显示为“选项值”,我使用代码,并根据语言用户显示值为ValueFR或ValueUS

1 个答案:

答案 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" }
)