使用List <selectlistitem>

时间:2019-03-15 10:27:36

标签: asp.net-mvc linq foreach nested-lists selectlistitem

我想将嵌套列表(List<OptionValueList>)传递给View;然后在@ Html.DropdownListFor内部呈现每个对应的List<OptionValue>

班级:

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,但是为了将数据绑定到@HtmlDropdownListFor,我无法在SelectListItem中进行修改。

以下是我的视图:

    @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次相同的dropdownlist:

   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.x = li;中的问题应放在哪里?谢谢。

0 个答案:

没有答案