我正在尝试使用从属性中提取的值来填充 DropDownList,而我现在的最终结果是一个只有“System.Web.Mvc.SelectListItem”的列表。我确定我在这里省略了一些小步骤,但我终究无法弄清楚它是什么。
生成列表的属性 GET:
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();
}
}
Controller 代码:
public ActionResult Edit(string id) {
// n/a code
ViewData["fooList"] = new SelectList(g.AllFoo, g.fooid);
return View(g);
}
查看代码:
<%= Html.DropDownListFor(model => model.fooid, ViewData["fooList"] as SelectList) %>
最佳答案
这里的问题是你不应该填写 SelectList
用IEnumerable<SelectListItem>
.使用 SelectList
或 IEnumerable<SelectListItem>
,但不是两者。有关详细信息,请查看此问题:Asp.Net MVC 2 Dropdown Displaying System.Web.MVC.SelectListItem
关于c# - 为什么这会呈现为 "System.Web.Mvc.SelectListItem"的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008825/