相关疑难解决方法(0)

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

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

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

15
推荐指数
2
解决办法
1万
查看次数

DropDownListFor - 显示一个简单的字符串列表

我知道已经有很多类似的问题,但我花了好几个小时试图解决这个问题,其他答案似乎都没有帮助!

我想使用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)

没有 …

c# asp.net-mvc drop-down-menu

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

asp.net-mvc ×2

c# ×2

drop-down-menu ×1

linq-to-sql ×1