0

ASP.NET MVC4 で簡単なクイズを作成しています。これは私の最初のアプリケーションなので、これは本当に初めてです。

問題は、@Viewbag.ans1 (または ans2 など) を表示しても何も表示されないことです。いろいろ調べてみましたが、複数の問題があると思います。

asawyer の質問によると、モデルを使用しなかった理由は、ユーザーの回答を追跡するためのデータベースは必要なく、Viewbag で十分だと考えたからです (ただし、正しいかどうかはわかりません)。私はそれを何か他のことに使用しています(クイズの答え)。

これが私の結果ビューです。@Viewbag.ans1 は出力に何も表示しません。

@{
    ViewBag.Title = "Results";
}

<h2>Results</h2>

<p># Correct: 9/10</p> <!--hardcoded, will change later-->

<p>Grade: A </p> <!--hardcoded, will change later-->
<p>Your Answers: </p>
<p>1. @ViewBag.Ans1</p>
<p>2. @ViewBag.Ans2 </p>
<p>3. @Html.Raw(ViewBag.Ans3)</p> <!--Trying a different way here-->
<p>4. @Html.Raw(ViewBag.Ans4)</p> <!--Here too-->
<p>5. @Html.Raw(ViewBag.Ans5)</p> <!--Here too-->
<p>6. @ViewBag.Ans6</p>
<p>7. @ViewBag.Ans7</p>
<p>8. @ViewBag.Ans8</p>
<p>9. @ViewBag.Ans9</p>
<p>10. @ViewBag.Ans10</p>


<div>
    @Html.ActionLink("Retry the test?", "Index")
</div>

これが私の Question_1 ビューです。これは、以下の @Html.ActionLink で Answer 変数を設定しているためです。

@{
    ViewBag.Title = "Question_1";
}

@using (Html.BeginForm()) 
{
    @Html.ValidationSummary(true)
}
<ol class="round">
    <li class="one">
        What is the name of this website?
    </li>
</ol>
        @Html.ActionLink("Yes", "Question_2", new{ Answer = true} )
        @Html.ActionLink("No", "Question_2",  new{ Answer = false} )

ここに私の Quiz_Controller があります:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Mvc;

namespace Matts_Quiz.Controllers
{
    public class QuizController : Controller
    {
        // 
        // GET: /Index/ 

        public ActionResult Index()
        {
            return View();
        }

        // 
        // GET: /Question_1/ 

        public ActionResult Question_1()
        {
            return View();
        }

        // 
        // GET: /Question_2/ 

        public ActionResult Question_2(bool Answer)
        {
            if (Answer == true)
            {
                ViewBag.Ans1 = "Y";
            }
            else if (Answer == false)
            {
                ViewBag.Ans1 = "N";
            }
            else
            {
                ViewBag.Ans1 = "Miss";
            }
            return View();
        }
(...etc...)
4

0 に答える 0