我在尝试获得预选值时遇到问题。 我尝试在SelectListItem中包含Selected,但它没有预先选择。 关于它为什么不匹配的任何线索?谢谢你的帮助。
RetailerId是int。 (它没有被定义为可枚举的)
零售商是一个枚举,例如:
public enum Retailer
{
Sears = 10,
Macys = 20
}
以下是查看代码:
@Html.DropDownListFor(x => x.RetailerId,
Enum.GetValues(typeof(Retailer)).Cast<Retailer>()
.OrderBy(o => o.GetDescription())
.Select(o => new SelectListItem() { Text = o.GetDescription(), Value = o.ToString(), Selected = (o.ToInt() == Model.RetailerId) }),
new { @data_placeholder = "Select Retailer", @class = "form-control" })
答案 0 :(得分:3)
您生成SelectListItem
的集合,其中Value
是“Sears”或“Macys”,无法绑定到属RetailerId
的{{1}}。< / p>
请注意,绑定到model属性时会忽略int
的{{1}}属性。在内部,该方法根据您绑定的属性的值设置Selected
属性,并且因为它是SelectListItem
,它与您的任何选项值都不匹配,并且选择了第一个选项,因为是。
您可以通过将Selected
子句修改为
int
或者,将模型属性更改为
.Select
.Select(o => new SelectListItem() { Text = o.GetDescription(), Value = ((int)o).ToString() }),
子句
public Retailer RetailerId { get; set; }