【发布时间】:2015-01-20 08:34:51
【问题描述】:
我有一个具有 List 类型属性“Countries”的模型。国家是一个枚举。该列表可以包含 0-5 个国家/地区。当我编辑这个模型时,我想为列表中的每个国家使用一个下拉列表。我希望能够使用 5 个下拉列表为该物业选择 0-5 个国家/地区。我该怎么做呢?对于具有单个枚举的属性,这有效:
@Html.DropDownListFor(model => model.Country, (IEnumerable<SelectListItem>)ViewBag.CountryList)
选择了正确的国家/地区。对于我的多国财产,这 不 工作:
@for (int i = 0; i < 5; i++)
{
@Html.DropDownListFor(model => model.Countries[i], (IEnumerable<SelectListItem>)ViewBag.CountryList)
}
也就是说,我得到了我的下拉列表,但没有像示例中的单个国家/地区那样选择国家/地区。
在我的控制器中,我有:
ViewBag.CountryList = new SelectList(Enum.GetValues(typeof(Country)));
有什么建议吗?我不太擅长 MVC。
【问题讨论】:
-
如果你的意思是当你第一次显示视图时每个下拉菜单只显示第一个选项(而不是选择模型属性定义的国家,那么你需要使用自定义
EditorTemplate模型。这是在for循环中使用DropDownListFor()的已知错误。 -
谢谢斯蒂芬!我该怎么做呢?
-
您需要发布模型和 GET 方法(包括如何构建枚举的选择列表)。我怀疑您可以使用
ListBoxFor()更轻松地解决这个问题
标签: c# asp.net-mvc razor enums html.dropdownlistfor