这甚至可能吗?也许我很愚蠢,但我不能在这里或其他地方应用任何答案来解决我的具体情况。
我想要做的是将强类型的测验模型传递给我的视图。测验有一系列问题。问题有一系列可能的问题。
问题如下:
PossibleAnswers看起来像:
我想将测验传递给视图,视图应该设置每个问题都有radiobuttonlist(group)
PossibleAnswers的表单。
<input id="1_1" type="radio" name="question1" value="1" />
<input id="1_2" type="radio" name="question1" value="2" />
<input id="1_3" type="radio" name="question1" value="3" />
现在我并不完全关心组中单选按钮的id的格式..显然MVC必须关心..所以无论如何工作我都想这样做。但是我希望当我将表格提交给行动时,我应该能够循环通过问题,并在每个问题的可能答案中获得可能的答案,并将.isAnswer标记为真:
foreach(var item in model.Questions)
{
foreach(var aitem in item.PossibleAnswers)
{
if(aitem.Selected)
//do some stuff
}
}
所以我不明白..这个:
@foreach (var item in Model.Questions)
{
@foreach (var jitem in item.PossibleAnswers)
{
@Html.RadioButtonFor(x => item.QuestionId, jitem.Value)
}
}
甚至没有接近..有人可以解释一下我做错了什么吗?我的模特错了吗? MVC可以这样做吗?我是否需要将PossibleAnswer模型类型更改为RadioButtonListItems?帮助!
------------------------------------ **更新** ------ ----------
@for (int i = 0; i < Model.Questions.Count(); i++)
{
<p>@Model.Questions.ElementAt(i).QuestionText</p>
@Html.RadioButtonListFor(m => m.Questions.ElementAt(i).AnswerRadios,
"Question" + i);
}
此代码似乎有效!至少它会输出一些radiobuttons ..但它输出html作为特殊实体..
<td id="Question0_Container">
<input id="Question0_1" name="Question0_value" type="radio" value="17" />
<label for="Question0_1">1</label>
<input id="Question0_2" name="Question0_value" type="radio" value="18" />
<label for="Question0_2">2</label>
<input id="Question0_3" name="Question0_value" type="radio" value="19" />
<label for="Question0_3">3</label>
<input id="Question0_4" name="Question0_value" type="radio" value="20" />
<label for="Question0_4">4</label>
<input id="Question0_5" name="Question0_value" type="radio" value="21" />
<label for="Question0_5">5</label>
</td>