我正在尝试使用从属性中提取的值来填充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();
}
}
Run Code Online (Sandbox Code Playgroud)
控制器代码:
public ActionResult Edit(string id) {
// n/a code
ViewData["fooList"] = new SelectList(g.AllFoo, g.fooid);
return View(g);
}
Run Code Online (Sandbox Code Playgroud)
视图代码:
<%= Html.DropDownListFor(model => model.fooid, ViewData["fooList"] as SelectList) %>
Run Code Online (Sandbox Code Playgroud) 我知道已经有很多类似的问题,但我花了好几个小时试图解决这个问题,其他答案似乎都没有帮助!
我想使用MVC在下拉列表中显示字符串列表.这真的很难吗?我没有"文本"和"值"分离(尽管MVC似乎需要一个) - 显示给用户的字符串是我的值.
到目前为止我有以下内容:
控制器:
public ActionResult Index()
{
return View(new HomeViewModel());
}
Run Code Online (Sandbox Code Playgroud)
视图模型:
public class HomeViewModel
{
public HomeViewModel()
{
Items = new SelectList(new[]
{
new SelectListItem { Text = "One", Value = "One" },
new SelectListItem { Text = "Two", Value = "Two" },
});
}
public SelectList Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图:
<% using (Html.BeginForm()) { %>
<% Html.DropDownListFor(x => x.Items, Model.Items); %>
<input type="submit" value="Go!" />
<% } %>
Run Code Online (Sandbox Code Playgroud)
但没有 …