Asp.net-Mvc
將單選按鈕中的選定值傳遞給 MVC 中的控制器
我正在嘗試將這個選定的單選按鈕值從剃刀視圖傳遞給控制器……有人可以告訴我如何做到這一點嗎?…… …..我的視圖如下所示:
@using (Html.BeginForm("Index", "Exam")) { @Html.Hidden("qid", Model.ID, new { @id = "id" }) <table> <tr> <td> @Model.ID </td> <td> @Model.QuestionDes </td> </tr> <tr> <td> <p>@Html.RadioButton("Answer1", new { @id = 1 }) @Model.Answer1 </p> </td> </tr> <tr> <td> <p>@Html.RadioButton("Answer2", new { @id = 2 }) @Model.Answer2 </p> </td> </tr> <tr> <td> <p>@Html.RadioButton("Answer3", new { @id = 3 }) @Model.Answer3 </p> </td> </tr> <tr> <td> <p>@Html.RadioButton("Answer4", new { @id = 4 }) @Model.Answer4 </p> </td> </tr> </table> <input type="submit" value="Next" /> } @using (Html.BeginForm("PrevIndex", "Exam")) { @Html.Hidden("qid1", Model.ID, new { @id = "id1" }) <input value="Prev" type="submit" /> }我的控制器看起來像這樣:…………
public class ExamController : Controller { [HttpGet] public ActionResult Index() { IQuestionService ser = new QuestionService(); QuestionLoadDTO q = ser.GetIndividualQuestions(1); return View(q); } [HttpPost] public ActionResult Index(QuestionLoadDTO ques) { int count = 0; count = int.Parse(Request["qid"].ToString()); count++; if (count <= 4) { IQuestionService ser = new QuestionService(); QuestionLoadDTO q = ser.GetIndividualQuestions(count); return View(q); } return RedirectToAction("Submit"); } public ActionResult PrevIndex(QuestionLoadDTO ques) { int count1 = 0; count1 = int.Parse(Request["qid1"].ToString()); count1--; if (count1 < 5 || count1 >= 0) { IQuestionService ser = new QuestionService(); QuestionLoadDTO q = ser.GetIndividualQuestions(count1); return View("Index", q); } return RedirectToAction("End"); } public ActionResult Submit() { return View(); } public ActionResult End() { return View(); } }這些是其他方法:
QuestionLoadDTO IQuestionService.GetIndividualQuestions(int index) { IQuestionData ser = new QuestionRepository(); QuestionLoadDTO q = ser.GetIndividualQues(index); return q; } public QuestionLoadDTO GetIndividualQues(int index) { Context con = new Context(); Question question = con.Questions.Find(index);//Where(e => e.ID == index).FirstOrDefault(); QuestionLoadDTO dto = new QuestionLoadDTO() { ID = question.ID, QuestionDes = question.QuestionDes, Answer1 = question.Answer1, Answer2 = question.Answer2, Answer3 = question.Answer3, Answer4 = question.Answer4 }; return dto; }謝謝!!!!
添加屬性:
public string SelectedAnswer { get; set; }在視圖中添加:
@Html.RadioButtonFor(m => m.SelectedAnswer, "Answer1") @Html.RadioButtonFor(m => m.SelectedAnswer, "Answer2") @Html.RadioButtonFor(m => m.SelectedAnswer, "Answer3") @Html.RadioButtonFor(m => m.SelectedAnswer, "Answer4")在控制器中,它根據選定的單選按鈕回發值…即 Answer1 或 Answer2 等。
如果您為單選按鈕提供相同的名稱,那麼您可以嘗試以下程式碼
控制器
[HttpPost] public ActionResult Index(string Answer) { return View(); }看法
@using (Html.BeginForm("Index", "Demo")) { @Html.RadioButton("Answer", "A") <span>A</span> @Html.RadioButton("Answer", "B") <span>B</span> <input type="submit" value="Next" /> }