C# 为什么这会呈现为一个“列表”;System.Web.Mvc.SelectListItem“;s
我试图用从属性中提取的值填充DropDownList,现在我的最终结果是一个只有“System.Web.Mvc.SelectListItem”的列表。我肯定这里有一些小步骤我忽略了,但就我的一生而言,我不知道这是什么 属性获取以生成列表:C# 为什么这会呈现为一个“列表”;System.Web.Mvc.SelectListItem“;s,c#,asp.net-mvc,linq-to-sql,C#,Asp.net Mvc,Linq To Sql,我试图用从属性中提取的值填充DropDownList,现在我的最终结果是一个只有“System.Web.Mvc.SelectListItem”的列表。我肯定这里有一些小步骤我忽略了,但就我的一生而言,我不知道这是什么 属性获取以生成列表: public IEnumerable<SelectListItem> AllFoo { get { var foo = from g in Bar orderby g.name
public IEnumerable<SelectListItem> AllFoo {
get {
var foo = from g in Bar
orderby g.name
select new SelectListItem {
Value = g.fooid.ToString(),
Text = g.name
};
return foo.AsEnumerable();
}
}
查看代码:
<%= Html.DropDownListFor(model => model.fooid, ViewData["fooList"] as SelectList) %>
model.fooid,ViewData[“傻瓜”]作为SelectList)%>
编辑:这个问题与之前提出的问题非常相似:
否则,您可能会发现本文很有帮助:
它使用EditorFor,但DisplayFor也可以这样做。这里的问题是,您不应该用
IEnumerable
填充选择列表。使用SelectList
或IEnumerable
,但不能同时使用两者。有关更多详细信息,请查看此问题:我遇到了相同的问题。您应该在视图中呈现列表,如下所示
@Html.DropDownListFor(model => model.fooid, new
SelectList(ViewData["fooList"],"Text","Value", Model.DefaultValue))
这是基于c#with razor view这不是很有帮助。这个问题询问了为什么标签中除了“System.Web.Mvc.SelectListItem”之外什么都没有,而没有正确的文本和值。你的链接都没有提到这个问题。是的,其他的问题或文章都与这个问题“非常相似”。事实上一点也不。
@Html.DropDownListFor(model => model.fooid, new
SelectList(ViewData["fooList"],"Text","Value", Model.DefaultValue))