Лучший способ хранить ответы радиокнопок (большое количество радиокнопок) в MVC - PullRequest
0 голосов
/ 08 мая 2018

У меня есть некоторый набор вопросов, и у каждого вопроса есть 3 варианта, из которых пользователь может выбрать только один из 3. (переключатель). Я также хочу сохранить выбранный ответ.

То, что я сделал, это как показано ниже.

 foreach (tblQuestion question in Model.TechQuestions)
        {

          <p> @question.QuestionDescription</p>

           @for (int i = 0; i < Model.TechAnswers.Count(); i++)
                {
                   if (question.QuestionID == 5)
                    {
                        <div class="col-md-3 col-sm-3 text-left">
                            @Html.RadioButtonFor(m => Model.selectedAnswerIDforQ5, Model.TechAnswers[i].AnswerID)
                        </div>
                    }

                    if (question.QuestionID == 6)
                    {
                        <div class="col-md-3 col-sm-3 text-left">
                            @Html.RadioButtonFor(m => Model.selectedAnswerIDforQ6, Model.TechAnswers[i].AnswerID)
                        </div>
                    }

                    if (question.QuestionID == 7)
                    {
                        <div class="col-md-3 col-sm-3 text-left">
                            @Html.RadioButtonFor(m => Model.selectedAnswerIDforQ7, Model.TechAnswers[i].AnswerID)
                        </div>
                    }

                    if (question.QuestionID == 8)
                    {
                        <div class="col-md-3 col-sm-3 text-left">
                            @Html.RadioButtonFor(m => Model.selectedAnswerIDforQ8, Model.TechAnswers[i].AnswerID)
                        </div>
                    }
                }
        }

Model.TechAnswers.Count () равно 3, поэтому у меня будет 3 переключателя, и идентификатор выбранных ответов (AnswerID) будет сохранен в переменных selectedAnswerIDforQ5 для QuestionID 5, selectedAnswerIDforQ6 для QuestionID 6, selectedAnswerIDforQ7 для QuestionID 7 и так далее. Это работает нормально. Но когда мое приложение станет больше, предположим, у меня есть 200 вопросов, у меня будет 200 переменных для хранения ответов на все вопросы.

Есть ли другой способ сохранить значения каждого вопроса, кроме использования этих переменных? Как массив или словарь или что-то? Поэтому мне не нужно повторять код, как указано выше. (Например, проверка идентификатора вопроса и переключателя для каждого вопроса)

Я хочу, чтобы ответы на все вопросы в Model.TechQuestions были сохранены где-нибудь без кода. Другой способ, чем выше, или это хороший способ?

...