在我的视图中,我有一个HTML下拉列表,在控制器中使用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>

谢谢您,
亚伦

最佳答案

你只需稍微修改一下代码就可以做到。您需要决定如何定义值项。现在我只想发表一个评论,你可以这么做:

ViewData["ReportedIssue"] = new SelectList(reportedIssue
    .Select(r => new SelectListItem
        {
            Text = r,
            Value = someIdValue  // define this however you want
        }));

因此,只需用这个代码替换代码并实现someIdValue占位符。

10-06 04:45