Я программирую веб-приложение (на mvc), в котором «quizmaster» может добавлять вопросы.Викторина содержит 3 вопроса.
Мне бы хотелось, чтобы мастер викторины мог добавить оба вопроса на одну страницу / форму.
Проблема в том, что я знаю, как отправить только один вопрос.а не три из них.
Поэтому я создал представление (AddQuestions), две модели (Question и Quiz) и контроллер (QuizController).
Представление строго типизировано с моделью Question,На это мнение у меня есть форма.На данный момент у меня есть цикл for, который повторяется до трех, так что можно заполнить 3 вопроса. Все они находятся в одной форме.
Модель
public class Question
{
public int Id { get; set; }
public string Question { get; set; }
public double Points { get; set; }
}
Класс Quiz содержитИдентификатор, дата и поля для сохранения идентификаторов трех вопросов
Просмотр
<form asp-action="AddQuestions" method="post">
@{
for (var i = 0; i < 3; i++)
{
if (i == 0)
{
<span>Question 1</span>
}
else if (i == 1)
{
<span>Question 2</span>
}
else if (i == 2)
{
<span>Question 3</span>
}
<p>
<label asp-for="Question[i]">Question</label>
<input asp-for="Question[i]" />
</p>
<p>
<label asp-for="Answer[i]">Answer</label>
<input asp-for="Answer[i]" />
</p>
<p>
<label asp-for="Points[i]">Points</label>
<input asp-for="Points[i]" />
</p>
}
}
<button type="submit">Add</button>
</form>
Контроллер
[HttpPost]
public ViewResult AddQuestions(IEnumerable<Question> questionList)
{
return View();
}
Я ожидаю, что вывод questionList представляет собой список вопросов(поэтому я могу добавить эти вопросы в Викторину), но нет вывода, потому что в представлении произошли две (одинаковые) ошибки.
Ошибка:
«Невозможно применить индексирование с помощью [] к выражению типа 'double'" Эта ошибка относится к частям asp-for = "Points [i]".
Как добиться того, чтобы мастер викторины могзаполнить три вопроса (из типового вопроса) (для одного теста) на одной странице?