c# - 为什么这会呈现为 "System.Web.Mvc.SelectListItem"的列表?

标签 c# asp.net-mvc linq-to-sql

我正在尝试使用从属性中提取的值来填充 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) %>

最佳答案

这里的问题是你不应该填写 SelectListIEnumerable<SelectListItem> .使用 SelectListIEnumerable<SelectListItem> ,但不是两者。有关详细信息,请查看此问题:Asp.Net MVC 2 Dropdown Displaying System.Web.MVC.SelectListItem

关于c# - 为什么这会呈现为 "System.Web.Mvc.SelectListItem"的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008825/

相关文章:

c# - 正确使用 app.config

c# - 如何将事件从基于 Laravel 的服务器广播到基于 .net C# 的客户端?

javascript - MVC .NET 提示用户登录

linq-to-sql - DeleteOnNull 属性始终从设计器文件中删除

c# - GroupJoin 和包含

c# - 将三个 slider 值组合成一个 Texblock 文本/标签内容?

c# - 由于其权限而无法访问套接字

c# - 我应该如何运行后台服务来为 Windows 世界中的网站创建导出文件?

css - 如何设置 ASP.NET MVC 5 使用 dotless/LESS

c# - 跨方法边界的 LINQ to SQL 规则