Ich habe eine Quiz-Anwendung, die Fragen mit mehreren Antworten hat. Das Problem ist, dass ich keine Idee habe, wie man die beantworteten Optionen an den Controller sendet, um zu überprüfen, ob sie korrekt sind. Bisher habe ich ein Formular mit mehreren Kontrollkästchen erstellt, aber ich bin verwirrt, welchen Typ sollte die Controller-Methode erhalten? HierÜberprüfen von Fragen mehrere richtige Antworten in MVC.NET
ist die Form:
@using (Html.BeginForm("CheckAnswers", "Questions", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@foreach (var item in Model.OfferedAnswers)
{
<hr />
<div class="form-group">
@Html.HiddenFor(modelItem => item.ID)
@Html.HiddenFor(modelItem=>item.QuestionID)
@Html.HiddenFor(modelItem=>item.AnswerID)
@Html.LabelFor(modelItem => item.Answer.text, "AnswerID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.CheckBox("IsCorrect", false, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(modelItem => item.Answer.text, "", new { @class = "text-danger" })
</div>
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Провери" class="btn btn-default" />
</div>
</div>
</div>
}
Hier ist der Code der Controller-Methode:
public ActionResult CheckAnswers(int ID, int QuestionID, int AnswerID, bool isCorrect)
{
OfferedAswer oa = db.OfferedAnswers.Find(ID);
return RedirectToAction("Index");
}
Dies kann für einzelne Choice-Antworten arbeiten. Ich bin neu bei .net mvc. Danke im Voraus.
Sie können eine 'foreach'-Schleife nicht verwenden, um Formularsteuerelemente für Sammlungen zu generieren. Verweisen [diese Antwort] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943) –