首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加默认SelectListItem

添加默认SelectListItem
EN

Stack Overflow用户
提问于 2009-05-21 17:32:54
回答 7查看 41.3K关注 0票数 16
代码语言:javascript
复制
 public IEnumerable<SelectListItem> GetList(int? ID)
 {
      return from s in db.List
             orderby s.Descript
             select new SelectListItem
             {
                 Text = s.Descript,
                 Value = s.ID.ToString(),
                 Selected = (s.ID == ID)
             };
 }

我将上面的内容返回给一个视图并填充一个DropDownList。在返回到视图之前,我想向上面的linq结果添加一个默认的SelectListItem (0, "Please Select..")。这个是可能的吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-05-21 17:37:44

代码语言:javascript
复制
return new[] { new SelectListItem { Text = ... } }.Concat(
       from s in db.List
       orderby s.Descript
       select new SelectListItem
       {
           Text = s.Descript,
           Value = s.ID.ToString(),
           Selected = (s.ID == ID)
       });
票数 31
EN

Stack Overflow用户

发布于 2009-05-21 17:45:24

当您使用ASP.NET MVC时,您可以在视图中通过为HtmlHelper的DropDownField方法的optionLabel参数指定值来完成此操作-例如:

代码语言:javascript
复制
htmlHelper.DropDownList("customerId", selectList, "Select One");

将这种类型的代码放在UI层中可能比将它放在数据层中更合适。这样做的一个缺点是您的选择框将有一个空字符串值,而不是'Select One‘选项的"0“,但这并不是真正的问题,因为如果您的控制器操作方法可以接受相关参数的可空int,则可以将其视为null值-例如

代码语言:javascript
复制
public ActionResult DoSomething(int? customerId)
{
  if(customerId != null)
  {
    // do something with the value
  }
}
票数 21
EN

Stack Overflow用户

发布于 2009-05-21 17:35:17

代码语言:javascript
复制
var list = from s in db.List
           orderby s.Descript
           select new SelectListItem
           {
               Text = s.Descript,
               Value = s.ID.ToString(),
               Selected = (s.ID == ID)
           };

list.Insert(0, new SelectListItem { Text = "Please Select...", Value = string.Empty });
return list;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/894130

复制
相关文章

相似问题

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