我正在使用 DropDownListFor
在 View 中呈现下拉列表。不知何故,呈现的列表没有选择 SelectListItem
与 Selected
设置为 true
.
在 Controller Action 中:
var selectList = sortedEntries.Select(entry => new SelectListItem
{
Selected = entry.Value.Equals(selectedValue),
Text = entry.Value,
Value = entry.Id
});
return View(new DropDownListModel
{
ListId = id,
SelectList = selectList,
OptionLabel = "Click to Select"
});
在 View 中:
<%= Html.DropDownListFor(m => m.ListId,
Model.SelectList,
Model.OptionLabel,
new {@class="someClass"}) %>
我尝试了以下方法:
Selected
设置为 true
. SelectList
在 DropDownListFor
: Html.DropDownListFor(m => m.ListId,
new SelectList(Model.SelectList, "Value", "Text",
new List<SelectListItem>(Model.SelectList).Find(s => s.Selected)),
new {@class="someClass"})
关于出了什么问题的任何建议?
编辑 :
更多信息:
HTML.RenderAction
最佳答案
DropDownListFor 将始终选择列表框的值,因此在这种情况下,它将查看 ListId 的值并选择列表中的该项目。如果在列表中未找到 ListId,则将选择第一项(或默认文本)。如果您想要一个基于所选属性进行选择的列表,请使用 DropDownList(没有 For,在这种情况下,您必须自己命名)。
所以在你的情况下,这会起作用:
var selectList = sortedEntries.Select(entry => new SelectListItem
{
Text = entry.Value,
Value = entry.Id
});
return View(new DropDownListModel
{
ListId = selectedValue,
SelectList = selectList,
OptionLabel = "Click to Select"
});
关于asp.net-mvc - ASP.NET MVC DropDownListFor 不支持 SelectListItem.Selected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689505/