En passant valeur sélectionnée pour les boutons radio pour le contrôleur MVC
Je suis en train de passer ce bouton d'option sélectionné la valeur du rasoir vue du contrôleur....
quelqu'un peut-il me donner une idée de comment faire cela?.....................
Mon point de Vue, ressemble à ceci:
@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" />
}
Mon Contrôleur ressemble à ceci:.........
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();
}
}
Ce sont les autres méthodes:
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;
}
Merci!!!!!!!
- Faire caché feilds pour chaque question.
Vous devez vous connecter pour publier un commentaire.
Ajouter une propriété:
Ajouter dans la vue:
De commande de publication de la valeur en fonction du bouton radio sélectionné... c'est à dire soit Answer1, ou Answer2, etc.
SelectedAnswer
doit être le modèle de ce point de Vue? Que faire si j'ai d'autres modèles?Si vous donnez le même nom pour votre radio, boutons, vous pouvez essayer le code suivant
Contrôleur
Vue
Soit faire un champ caché pour chaque bouton radio ou de vous changer les boutons radio comme ce
Utiliser le formulaire de collecte de