首页 > 解决方案 > 使用 List 将嵌套列表绑定到 DropdownListFor

问题描述

我想将嵌套列表 ( List<OptionValueList>) 传递给视图;List<OptionValue>然后在@Html.DropdownListFor 中渲染每个对应项。

班级:

public class OptionValue
{
   public int OptionID { get; set; }
   public int ValueID { get; set; }
   public string ValueName { get; set; }      
}
public class OptionValueListList : List<OptionValueList> { }
public class OptionValueList : List<OptionValue> { }   

我从 db 填充类OptionValueListList,但我无法调整它SelectListItem以便将数据绑定到 @HtmlDropdownListFor。

以下是我的观点:

    @model Program.Models.OptionValueListList

    @foreach (var item in Model) /*List<OptionValueList>*/
    {
         foreach (var y in item) /*List<OptionValue>*/
         {        
  @Html.DropDownListFor(m=>y.ValueID, new SelectList(@ViewBag.x, "Value", "Text"), "Option Values")
       }
     }

下面是我尝试传递数据但无法正确绑定的地方,因为它呈现相同的下拉列表 18 次:

   OptionValueListList o = new OptionValueListList();
   o = pr.GetOptionsForProduct(id);
   foreach (var item in o)
   {
        foreach (var i in item)
        {
             List<SelectListItem> li = new List<SelectListItem>();
             li = (from c in item
                  select new SelectListItem
                  {
                        Text = c.ValueName,
                        Value = c.ValueID.ToString()
                  }).ToList();
              ViewBag.x = li;
         }  
    }

我应该把这个 Viewbag放在ViewBag.x = li;哪里?谢谢。

标签: asp.net-mvclinqforeachnested-listsselectlistitem

解决方案


推荐阅读