我正在ASP.NET MVC4中进行一个简单的测验。这是我的第一个申请,所以我真的很新。
问题是,当我显示@Viewbag.ans1(或ans2等)时,没有显示任何内容。我做了很多搜索,但我想我可能有不止一个问题。
Per 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...)