2014-11-25 5 views
0

Я пытаюсь отобразить раскрывающееся меню в моем приложении asp.net mvc. Меня поразили настройку элементов списка в Приоритетах. Какая у меня ошибка?Проблема Asp.Net MVC DropDownList

public IList<SelectListItem> Priorities { get; set; } 
Priorities = new List<SelectListItem>(); 
Priorities.Add(new IList<SelectListItem> 
       { 
        new SelectListItem { Text = "High", Value = "1"}, 
        new SelectListItem { Text = "Low", Value = "0"} 
       }); 

@Html.DropDownListFor(m => m.SelectedPriority, Model.Priorities, "Select one") 
+1

Изменение ' Priorities.Add (новый IList {..' to 'Priorities.Add (новый SelectListItem {Text =" High ", Value =" 1 "});' –

+0

Я пытаюсь добавить несколько элементов одновременно. – Kurkula

ответ

1

Попробуйте изменить

Priorities = new List<SelectListItem>(); 

По

Priorities = new List<SelectListItem>() { 
       new SelectListItem { Text = "High", Value = "1"}, 
       new SelectListItem { Text = "Low", Value = "0"} 
      }; 

или литыми и AddRange

((List<SelectListItem>)Priorities).AddRange(
       new List<SelectListItem>() { 
        new SelectListItem { Text = "High", Value = "1"}, 
        new SelectListItem { Text = "Low", Value = "0"} 
       } 

      ); 

Другой вариант использования IEnumerable:

public IEnumerable<SelectListItem> Priorities { get; set; } 
Priorities = new List<SelectListItem>(); 

Priorities = Priorities.Concat(new List<SelectListItem>() { 
       new SelectListItem { Text = "High", Value = "1"}, 
       new SelectListItem { Text = "Low", Value = "0"} 
       } 
     ); 
1

Вы не можете создать экземпляр интерфейса здесь:

Priorities.Add(new IList<SelectListItem> 
{ 
    new SelectListItem { Text = "High", Value = "1"}, 
    new SelectListItem { Text = "Low", Value = "0"} 
}); 

Вместо пытаться создать его экземпляр как то, что реализует IList и использовать AddRangewhich предназначен для такого рода ситуации:

Priorities.AddRange(new List<SelectListItem> 
{ 
    new SelectListItem { Text = "High", Value = "1"}, 
    new SelectListItem { Text = "Low", Value = "0"} 
});