【发布时间】:2019-01-07 15:33:47
【问题描述】:
好的,我有一个名为 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
所以我将 QuestionnaireTable 读入 Viewbag(进入 ViewBag.QuestionsList),并可以遍历每个项目以获取正确的问卷(以问卷“AAA1”为例)。 但是,如果选择类型是“枚举”,那么我需要使用 QuestionMultiSelectTable 表中具有相同 ListOfAnswersID 的不同列表填充下拉列表
@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”,然后填充它。 但我很难在任何地方找到示例。
【问题讨论】:
-
在您的问题上至少添加一个语言标签。
-
如果用户选择一个枚举,你想用那个枚举的不同列表填充下拉列表吗?
-
当用户选择任何东西时不会。我只想在用户执行任何操作之前填充下拉列表。
-
@BigMB 你能告诉我我的回答是否有帮助,或者你还需要什么吗?
标签: c# asp.net-mvc asp.net-mvc-4 model-view-controller