我有一个 asp.net-mvc 网站,我遇到了一个问题,即下拉列表中正确的选择项没有被选择。我的控制器操作上有以下代码(简化以隔离问题):
public ActionResult MyAction()
{
var vm = GetVM();
var list = new List<INamed> {new NamedInfo() {Id = 1, Name = "Yes"}, new NamedInfo() {Id = 0, Name = "No"}};
vm.YesNoList = SelectListHelper.GenerateDropdownList(vm.IncludesWeekends ? 1 : 0, list);
return View(vm);
}
这是 GenerateDropdownList 的定义
public static List<SelectListItem> GenerateDropdownList<T>(int id, IEnumerable<T> list) where T : INamed
{
List<SelectListItem> dropdown = list.Select(c => new SelectListItem
{
Selected = c.Id == id,
Text = c.ToString(),
Value = c.Id.ToString()
}).ToList();
return dropdown;
}
以下是我的 HTML 视图中的代码:
<% = Html.DropDownList("IncludesWeekends", Model.YesNoList, new { @id = "IncludesWeekends" })%>
我希望在我的示例中选择否(并且当我在服务器端放置断点时它具有 Selected = true 但是当我查看生成的 html 时,没有选择任何内容:
<select id="IncludesWeekends" class="autoComplete1" name="IncludesWeekends">
<option value="1">Yes</option>
<option value="0">No</option>
</select>
并且默认选择“是”,因为它是第一项。
关于我在这里做错了什么或可行的替代方案有什么建议吗?