开发者

DropDownListFor ... selected value

开发者 https://www.devze.com 2023-02-18 04:50 出处:网络
In my model, I have a list of country : Model.ListCountry. The Country class has some fields : Id, Code, ValueFR, ValueUS

In my model, I have a list of country : Model.ListCountry. The Country class has some fields : Id, Code, ValueFR, ValueUS

In my model, I have a Customer and this customer has a country : Model.Customer.Country

I tried this :

@Html.DropDownListFor(x => x.Record.Customer.Country, new SelectList(Model.ListCountry, "Code", "FR"), new { id = "lbCountry" })

No idea ?

Thanks,

Update1: In the database, I save the Id, but in the dropdown as "option value" I use the开发者_运维知识库 code, and as display fiels ValueFR or ValueUS depending of the language user


In order to preselect a value in a dropdown list set the corresponding property to this value in your controller action:

model.Record.Customer.Country = "FR";

As far as the dropdown list generation is concerned the two string arguments you are passing to the SelectList constructor represent the property names of the model corresponding respectively to the Value and Text. So I guess it should be more like this:

@Html.DropDownListFor(
    x => x.Record.Customer.Country, 
    new SelectList(Model.ListCountry, "Code", "ValueFR"), 
    new { id = "lbCountry" }
)

In this example we are using the Code property as Values in the dropdown list and ValueFR property as Text. So in this case you must ensure that you are setting the model.Record.Customer.Country property to some Code that exists in the list and the dropdown will automatically preselect this item.

Another possibility use the following SelectList constructor which allows you to specify a selected value as 4th parameter:

@Html.DropDownListFor(
    x => x.Record.Customer.Country, 
    new SelectList(Model.ListCountry, "Code", "ValueFR", "FR"), 
    new { id = "lbCountry" }
)
0

精彩评论

暂无评论...
验证码 换一张
取 消