似乎以前从未做过这个看似简单的任务。
我有一个控制器,其操作可以检索包含我的语言信息的表格文化:
[HandleError]
[ChildActionOnly]
public ActionResult LanguageDropdownlist()
{
var languageDropdownlist = _unitOfWork.CulturesRepository.Get();
return PartialView("_LanguageSelectionPartial", languageDropdownlist.ToList());
}
languageDropdownlist的结构如下:
List languageDropdownlistItems
[0]
- display_name
- id
- name
- ...
[1]
- display_name
- id
- name
- ...
[2]
- display_name
- id
- name
- ...
[3]
- display_name
- id
- name
- ...
我将列表传递给视图。
在视图中执行以下操作:
@model List<ArtWebShop.Models.cultures>
<p>
@Html.DropDownList("name", (IEnumerable<SelectListItem>)Model)
</p>
如何为上帝之爱填充下拉列表,位于视图中的上述代码显然不起作用,但我似乎无法从控制器和视图中找到代码的单一解释。
P.S。:我不想使用viewData或viewBag。
答案 0 :(得分:0)
请注意:How do you create a dropdownlist from an enum in ASP.NET MVC?
我喜欢<%: Html.EnumDropDownListFor(model => model.MyEnumProperty) %>
对你有用吗?
答案 1 :(得分:0)
我找到了解决方案。得到了我的灵感: http://forums.asp.net/t/1817879.aspx/1实际上非常简单。
在我的控制器:
中 public ActionResult LanguageDropdownlist()
{
var culturelist = (_unitOfWork.CulturesRepository.Get()).ToArray();
var list = new List<SelectListItem>();
for (int i = 0; i < culturelist.Count(); i++)
{
list.Add(new SelectListItem { Text = culturelist[i].name, Value = culturelist[i].id.ToString() });
}
return PartialView("_LanguageSelectionPartial", list);
}
在这里,我将它们添加到我的视图中,以便我可以在那里访问它们。
最后在我的部分视图:
中@model List<SelectListItem>
<p>
@Html.DropDownList("language-dropdown", Model)
</p>
我通过@model访问它们并将它们放在@ Html.DropDownList。
中