在我看来,我有一个HTML DropDownList,在我的控制器中使用List<string>
填充。
<%= Html.DropDownList("ReportedIssue", (IEnumerable<SelectListItem>)ViewData["ReportedIssue"]) %>
List<string> reportedIssue = new List<string>();
reportedIssue.Add("All");
reportedIssue.Add(...);
ViewData["ReportedIssue"] = new SelectList(reportedIssue);
在我看来,结果是:
<select name="ReportedIssue" id="ReportedIssue">
<option>All</option>
<option>...</option>
</select>
有没有办法做到这一点,并且还包含每个<option>
标签中的值?
<select name="ReportedIssue" id="ReportedIssue">
<option value="0">All</option>
<option value="1">...</option>
</select>
谢谢,
亚伦
答案 0 :(得分:2)
只需对代码稍作修改即可。您需要决定如何定义价值物品。现在我只是在评论中你可以做到:
ViewData["ReportedIssue"] = new SelectList(reportedIssue
.Select(r => new SelectListItem
{
Text = r,
Value = someIdValue // define this however you want
}));
所以只需用这个代码替换你的代码并实现someIdValue
占位符。
答案 1 :(得分:1)
您可以循环遍历列表并在视图中输出吗?
(同样要传递Id和Text我会创建一个Dictionary并将其添加到你的视图模型/ ViewData中)。
在视图中:
<select name="ReportedIssue" id="ReportedIssue">
<option value="0">All</option>
<% foreach(int key in myDictionary.Keys) { %>
<option value="<%= key %>"><%= myDictionary[key] %></option>
<% } %>
</select>