ОК, у меня есть таблица вопросов, которая называется QuestionnaireTable.
Эта таблица имеет следующие атрибуты:
QuestionnaireID QuestionID ChoiceType ListOfAnswers QuestionLabel
--------------- ---------- ---------- ------------- -------------
AAA1 Quest1 enum ListA Pick a shape
AAA1 Quest2 string What is your name
AAA1 Quest3 enum ListB Pick a colour
AAA2 Quest1 enum ListA Pick a shape
AAA2 Quest4 number What is your age
У меня есть вторая таблица с именем QuestionMultiSelectTable
Эта таблица имеет следующие атрибуты:
ListOfAnswersID Options
---------- ----------
ListA Square
ListA Triangle
ListA Circle
ListA Rectangle
ListB Blue
ListB Red
Итак, я прочитал таблицу вопросников в Viewbag (в ViewBag.QuestionsList) и могу перебирать каждый элемент для правильного вопросника (например, вопросник «AAA1»).
Однако, если выбран тип «enum», мне нужно заполнить раскрывающийся список, используя отдельный список в таблице QuestionMultiSelectTable, который имеет тот же ListOfAnswersID
</p>
<pre><code>@foreach (var QuestionItem in ViewBag.QuestionsList)
{
if (QuestionItem.OptionsType == "enum")
{
<div class="form-group">
<div class="control-label col-md-3">
@QuestionItem.QuestionLabel:
<div>
<div class="col-md-9">
@Html.DropDownList((string)QuestionItem.QuestionID, Enumerable.Empty<SelectListItem>(),
"Select answer",
new { @class = "form-control" })
</div>
</div>
}
else
{
<div class="form-group">
<div class="control-label col-md-3">
@QuestionItem.QuestionLabel:
</div>
<div class="col-md-9">
@Html.TextBox((string)QuestionItem.QuestionLabel, "0", new { @class = "form-control" })
</div>
</div>
}
}
Теперь я пытаюсь понять, как я могу заполнить этот выпадающий список правильным списком ответов из таблицы QuestionMultiSelectTable.
Список анкет, вопросов и возможных ответов постоянно изменяется, добавляется и удаляется из.
Итак, есть ли какие-либо предложения о том, как сделать это в MVC без создания сложного мастер-класса для страницы? (Имейте в виду, что это лишь малая часть того, что происходит на странице, поэтому вы не хотите копаться в создании пользовательских классов, если нет другого пути)
В идеале я хотел бы просто одно действие, которое я могу вызвать, когда каждый выпадающий список создается / создается, с "ListOfAnswersID", и тогда оно будет заполнено.
Но я изо всех сил пытаюсь найти примеры где угодно.