Возможно ли это вообще?Может быть, я глуп, но я не могу применить ни один из ответов здесь или в другом месте к моей конкретной ситуации.
Что я хочу сделать, это передать строго типизированную модель Викторины на мой взгляд.Викторина имеет сборник вопросов.Вопрос содержит коллекцию возможных ответов.
Вопросы выглядят так:
- Question.Text
- Question.Id
- Question.PossibleAnswers
Возможные ответы выглядят следующим образом:
- Возможный ответ.Ид.
- Возможный ответ. Значение
- Возможный ответ. Метка
- Возможный ответ. Выбранный
Я хочу передать Викторину представлению, представление должно настроить форму, в которой каждый Вопрос имеет radiobuttonlist(group)
возможных ответов.
Текст вопроса 1 бла-бла-бла:
<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" />
Теперь мне все равно, какой именно формат для идентификаторов радиокнопок в группе ... ясно, что MVC должен заботиться ... поэтому, как бы я ни работал, я хочу это сделать.Но я ожидаю, что когда я отправлю форму в действие, я смогу пройтись по Вопросам и получить возможный Ответ в каждой коллекции возможных Ответов Вопроса с пометкой .isAnswer как true:
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 сделать это?Нужно ли мне изменить тип модели возможного ответа на 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);
}
Этот код работает!По крайней мере, он выдаст несколько радиокнопок. НО выводит 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>