Создание нескольких выпадающих списков из одного списка выбора Viewbag

В контроллере:

 DbModel db = new DbModel();
 ViewBag.SUBJECT_NO = new SelectList(db.SUBJECT, "SUBJECT_NO", "SUBJECT_NAME"); 

Код по умолчанию для создания DropDownList из этого окна просмотра:

@Html.DropDownList("SUBJECT_NO", String.Empty)

Но я хочу создать три списка выбора из этого одного вида. Так, чтобы один учитель был опытен в трех предметах из списка предметов. Но каждое имя DropDownList не будет именем Viewbag по умолчанию «SUBJECT_NO». Это будет

"SUBJECT_NO1", "SUBJECT_NO2" , "SUBJECT_NO3".

и в DbModel класс учителя будет иметь три столбца с этими именами. Я не хочу создавать так много пакетов просмотра для одной таблицы DbModel. В этом представлении и действии будет 5 различных вариантов темы. И для этого мне нужно создать 5*3=15 viwbag для 5 классов DbModel. Я хочу этого только с 5 Viewbags.

Я буду очень признателен тому, кто сможет мне помочь.


person Muhammad Ashikuzzaman    schedule 17.09.2015    source источник
comment
Я бы рекомендовал вам не использовать ViewBag для этой цели. Я имею в виду, что не так со строгой типизацией, когда вам нужен такой раскрывающийся список, который вы уже знаете, что вы можете использовать снова и снова, тогда было бы лучше создать модель данных для каждого из них, и они загружали бы их, когда это требуется, непосредственно из бритвы. . Это всего лишь более чистый подход.   -  person Transcendent    schedule 17.09.2015
comment
Хорошо, я попытаюсь. но видите, что кто-то проголосовал за мой вопрос. Я не знаю почему!   -  person Muhammad Ashikuzzaman    schedule 18.09.2015
comment
Я не проголосовал против вашего вопроса!   -  person Transcendent    schedule 19.09.2015


Ответы (1)


@Html.DropDownList() имеет 8 переопределений. Вам просто нужно найти тот, который позволяет определить источник.

Нравится

@Html.DropDownList("SUBJECT_NO1", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)
@Html.DropDownList("SUBJECT_NO2", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)
@Html.DropDownList("SUBJECT_NO3", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)

Это происходит при использовании метода

public static MvcHtmlString DropDownList(
    this HtmlHelper htmlHelper, 
    string name, 
    IEnumerable<SelectListItem> selectList, 
    string optionLabel, 
    object htmlAttributes
);
person JamieD77    schedule 17.09.2015
comment
спасибо .. вы сделали мой день .. но обратите внимание, что кто-то проголосовал против моего вопроса. - person Muhammad Ashikuzzaman; 19.09.2015