2013-08-13 4 views
0
public class DropDown 
{ 

    public string[] SelectedItems { get; set; } 

    public IEnumerable<SelectListItem> Items { get; set; } 

} 

Я пытаюсь получить DropDown в MVC из БД с вышеуказанной структурой.MVC DropDown from DataBase

Из базы данных Я получил поле «Текст и значение» и имею в IEnumerable<T>, где T имеет 2 свойства id и текст.

Каким образом можно преобразовать ienumerable id в массив строки и присвоить id, текст SelectedListItem?

Я думал о том, чтобы пройти через ienumerable и сформировать DropDown, но думал, что будут лучшие способы.

обновление

Например:

In DB i have student table with 
ID, 
Name, 
Class, 
Section 

И я получил идентификатор и имя в ienumerable<student>. Оттуда мне нужно преобразовать в DropDown

+0

http://stackoverflow.com/questions/17951524/mvc-and-entity-framework-select-list/17953161#17953161 –

ответ

2
IEnumerable<Student> studentList = GetStudentList(); 
IEnumerable<SelectListItem> dropdownItems = new MultiSelectList(studentList, "ID", "Name",selectedValues); 

DropDown dropDown = new DropDown { Items = dropdownItems }; 

Если вы хотите создать ListBox вы можете сделать это с HTML-хелперов, как это:

@Html.ListBoxFor(item => item.SelectedStudents, new MultiSelectList(Model.StudentList, "ID", "Name",selectedValues)) 
+0

Мне нужно сделать выбор из Ienumerable в раскрывающемся списке! – user2067567

+0

У меня уже есть данные для выпадающего списка в Ienumerable Мне нужно преобразовать в класс типа DropDown с массивом строки и элементом SelectList – user2067567

+0

@ user2067567 Я не понимаю. Что у вас в вашей БД? –

0

Похоже, может быть, вы хотите использовать несколько выпадающие за каждый расположение массива в выбранных элементах? Если так, у меня была эта проблема на прошлой неделе. Я позвонил в дальний конец Html.DropDownListFor(...).

<% for(int i = 0; i < Model.SelectedItems.length; i++) %> 
    <%: Html.DropDownListFor(m => m.SelectedItems[i], Model.Items %> 
1

Я не уверен, почему вы пытаетесь создать свой собственный класс DropDown, почему бы не использовать встроенный помощник HTML MVC?

Если у вас есть IEnumerable, который вы хотите превратить в SelectList, который будет потребляться помощника, что-то, как это будет работать:

var selectListItems = from t in items 
select new SelectListItem{ 
    Text = t.Text, 
    Value = t.Id 
}.ToList(); 

Затем запустите его на ваш взгляд, вы могли бы идеально использовать модель представления, но ViewBag тоже работает:

ViewBag.SelectListItems = selectListItems; 

Наконец, ваш HTML Helper построить свой выпадающий для вас, на ваш взгляд:

@Html.DropDownList("SelectListItems") 
+0

Я пытаюсь отправить без использования сумки для просмотра! – user2067567