Я новичок в NET MVC и пытаюсь разработать приложение, в котором пользователь будет отвечать на несколько вопросов,
У меня есть следующие модели, связанные с моим вопросом:
- Вопрос
- Выбор (включает идентификатор вопроса как FK)
и ViewModel
public class QuestionChoiceViewModel
{
public Question Question { get; set; }
public IEnumerable<Choice> Choices { get; set; }
}
В моем представлении я хочу отображать все вопросы с их вариантами ответа в виде переключателей, поэтому у меня есть следующие строки в моем представлении Choice/Index.
@model IEnumerable<WebApplication.Models.QuestionChoiceViewModel>
@using (Html.BeginForm("Index", "Choices", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@foreach (var q in Model){
@:<b>Question:</b>
@Html.DisplayFor(modelItem => q.Question.questionText)
<form class="form-group">
@foreach(var c in q.Choices){
<input type="radio" name="@c.choiceText" value="@c.choiceID" />
@c.choiceText
<br />
}
</form>
<br />
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="button" value="Back" class="btn btn-default" id="btnBack" />
<input type="submit" name="btnSubmit" value="Submit" class="btn btn-default" />
</div>
</div>
</div>
}
Я показываю и могу выбирать из нескольких вопросов без проблем.
И для окончательного примера кода см. Мой controller принимает только тип FormCollection в качестве параметра.
public ActionResult Index(FormCollection form)
Проблема: Когда я отлаживаю и вижу, что находится в форме, помимо токена и т. д., это значение только первой группы радиокнопок. Допустим, у меня есть 10 вопросов, но я получаю в контроллере то, что выбрано в 1-м вопросе. Что я сделал не так?
Также приветствуются любые советы по моему стилю, спасибо!
foreach
для своей модели. См. этот ответ - person   schedule 11.07.2017