首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我怎样才能让这个ASP.NET MVC SelectList工作?

我怎样才能让这个ASP.NET MVC SelectList工作?
EN

Stack Overflow用户
提问于 2009-04-23 14:23:20
回答 23查看 230.3K关注 0票数 127

我在控制器中创建了一个selectList,以便在视图中显示。

我试图在飞行中创建它,某种程度上是这样的..像这样..。

代码语言:javascript
复制
myViewData.PageOptionsDropDown = 
   new SelectList(new [] {"10", "15", "25", "50", "100", "1000"}, "15");

它可以编译,但输出不好...

代码语言:javascript
复制
<select id="PageOptionsDropDown" name="PageOptionsDropDown">
    <option>10</option>
    <option>15</option>
    <option>25</option>
    <option>50</option>
    <option>100</option>
    <option>1000</option>
</select>

注意到没有选择任何项目了吗?

我该怎么解决这个问题??

EN

回答 23

Stack Overflow用户

发布于 2009-04-23 14:33:06

我就是这么做的

代码语言:javascript
复制
IList<Customer> customers = repository.GetAll<Customer>();
IEnumerable<SelectListItem> selectList = 
    from c in customers
    select new SelectListItem
    {
        Selected = (c.CustomerID == invoice.CustomerID),
        Text = c.Name,
        Value = c.CustomerID.ToString()
    };

再看一眼我不确定我知道你在找什么。

票数 127
EN

Stack Overflow用户

发布于 2009-05-18 13:49:13

我使用了一个扩展方法:

用法

代码语言:javascript
复制
var departmentItems = departments.ToSelectList(d => d.Code + 
                                               " - " + d.Description,
                                               d => d.Id.ToString(),
                                               " - ");

var functionItems = customerFunctions.ToSelectList(f => f.Description, 
                                                   f => f.Id.ToString(), 
                                                   " - ");

使用

代码语言:javascript
复制
public static class MCVExtentions
{
    public static List<SelectListItem> ToSelectList<T>(
        this IEnumerable<T> enumerable, 
        Func<T, string> text, 
        Func<T, string> value, 
        string defaultOption)
    {
        var items = enumerable.Select(f => new SelectListItem()
                                     {
                                         Text = text(f), 
                                         Value = value(f) 
                                     }).ToList();
        items.Insert(0, new SelectListItem()
                    {
                        Text = defaultOption, 
                        Value = "-1" 
                    });
        return items;
    }
}
票数 68
EN

Stack Overflow用户

发布于 2009-04-23 14:35:35

使用接受items, dataValueField, dataTextField, selectedValue作为参数的构造函数:

代码语言:javascript
复制
ViewData["myList"] = 
                new SelectList(new[] { "10", "15", "25", "50", "100", "1000" }
                .Select(x => new {value = x, text = x}), 
                "value", "text", "15");

然后在您的视图中:

代码语言:javascript
复制
<%=Html.DropDownList("myList") %>
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/781987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档