【问题标题】:SelectList with OptGroup in asp.net MVC 5.2在 asp.net MVC 5.2 中使用 OptGroup 选择列表
【发布时间】:2015-04-06 05:42:43
【问题描述】:

我的 asp.net MVC 5.2 Web 应用程序中有一个 SelectList,其中包含数据库的所有项目。 MVC 5.2 允许使用<optgroup>。现在我想要具有属性类型(字符串)的 optgroup。这个的语法是怎样的?除了.group 部分外,一切正常。我真的不知道该怎么做。

创建 SelectList 的代码:

Public Shared Function getNameList() As IEnumerable(Of SelectListItem)
   Dim DB As New ModelDB
   Return DB.Things.ToList().[Select](Function(item) New SelectListItem() With {
                                                     .Text = item.Name,
                                                     .Value = item.ID,
                                                     .Group = item.Type})  'ERROR in this line
End Function

错误是:

“String”类型的值无法转换为“System.Web.Mvc.SelectListGroup”。

【问题讨论】:

    标签: asp.net-mvc vb.net


    【解决方案1】:

    经过数小时的尝试,我想我找到了解决方案:

    Public Shared Function getNameList() As IEnumerable(Of SelectListItem)
        Dim DB As New ModelDB
        'sort alphabetically
        Dim sortList As IEnumerable(Of Model) = From item In DB.Model.ToList() Order By item.Name Order By item.Type
        'create list of SelectListGroup
        Dim OptGroups As List(Of SelectListGroup) = sortList.Select(Function(item) item.Type).Distinct().Select(Function(type) New SelectListGroup With {.Name = type}).ToList()
        'define selectList
        Dim selectList As IEnumerable(Of SelectListItem) = sortList.[Select](Function(item) New SelectListItem() With {
                                               .Text = item.Name,
                                               .Value = item.ID,
                                               .Group = OptGroups.First(Function(type) type.Name = item.Type)})
    
        Return selectList
    End Function
    

    我希望有人能从这段代码中获利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多