0

MVC アプリケーションの投票メカニズムを作成しています。ユーザーはログインした後にのみ投票できます。tblQuestions (質問を入力するため)、tblAnswers (回答を入力するため)、tblQuestionAnswerUserResponses (ユーザーの応答を入力するため) の合計 3 つのテーブルがあります。tblAnswers は tblQuestions と関係があります。HttpGet のコンテナーで次のコードを使用しました。これは私のコントローラーコードです。

   [HttpGet]
        [ActionName("VotingResult")]
        public ActionResult VotingResult(int personid)
        {
            List<Voting_Questions> QuesList = EpDObj.PopulateQuestions(); //Populate the list of questions
            CountofQuestionsDisplayed = QuesList.Count;
            ViewBag.Questions = QuesList; // Storing the list of questions in the viewbag
            List<Voting_Answers> Answers = EmcObj.Voting_Answers.ToList(); //Populate the list of answers
            return View(Answers);
        }

ビューで Voting_Answers をモデルとして使用しています
私のビューは

@model  IEnumerable<EmployeeManagementDAL.Voting_Answers>


<h2>VotingResult</h2>

@using (Html.BeginForm())
{

<div>
    @foreach (var a in ViewBag.Questions)
    {
        <h4>@a.Questions</h4>
        <div>
            @foreach (var b in Model)
            {
                if (b.QuestionsID == a.id)
                {                                  
                @Html.RadioButton(b.AnswersOptions, new {Answerid= b.id, Questionid=a.id }) @b.AnswersOptions
                }
            }
        </div>
    } 
</div>
<br/>
<div >
    <input type="submit" value="Vote Now!!" onclick="return confirm('Are you sure you want to submit your choices?');"/>
</div>
}

ユーザーが初めてこのページにアクセスしたとき、オプションは選択されていません。オプションを選択した後、[保存] ボタンをクリックすると、詳細が 3 番目のテーブルに保存され、そのページから出てきます。彼が編集のためにそのページに 2 回目に到達した場合、tblQuestionAnswerResponses のこれらの値でページをレンダリングする必要があります。つまり、tblQuestionAnswerResponses のモデル クラスが使用されると思います。その場合、両方のケースで同じページを使用できます。つまり、ユーザーが最初にページにアクセスしたときと、2 回目にページにアクセスしたときに同じページを使用できます。ビューの条件に基づいて、MVC で複数のモデルを使用できますか?

4

1 に答える 1