Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengumpulkan Butang Radio dengan Betul mengikut Soalan dalam ASP.NET MVC 5?
Soalan:
Dalam aplikasi ASP.NET MVC 5, borang mempunyai beberapa set butang radio. Setiap kumpulan mewakili soalan, tetapi coretan kod hanya menjana satu kumpulan, menyebabkan hanya soalan pertama yang memilih butang radio sambil menyahpilih yang lain. Bagaimanakah perkara ini boleh diselesaikan untuk mengumpulkan butang radio dengan betul mengikut soalan?
Jawapan:
Untuk mengumpulkan butang radio mengikut soalan, beberapa isu dalam kod yang disediakan perlu ditangani :
Kod Diubah Suai:
@foreach (var question in Model.GeneralQuestions) { <div class="well"> <h3><strong>@question.QuestionString</strong></h3> @foreach (var answer in question.PossibleAnswers) { @Html.RadioButtonFor( model => model.GeneralQuestions.IndexOf(question), // Binding to index of question in list answer.Answer, new { id = $"question_{question.QuestionID}_answer_{answer.Answer}" }) @Html.Label(answer.Answer) <br /> } </div> }
Lihat Model:
Buat model paparan dengan sifat untuk diikat pada butang radio dan memaparkan soalan.
public class QuestionVM { public string QuestionString { get; set; } public IEnumerable<AnswerVM> PossibleAnswers { get; set; } } public class StudentVM { public int ID { get; set; } public string Name { get; set; } public List<SubjectVM> Subjects { get; set; } } public class SubjectVM { public string Name { get; set; } public List<QuestionVM> Questions { get; set; } }
Paparan:
@model StudentVM @using (Html.BeginForm()) { @Html.HiddenFor(m => m.ID) @Html.DisplayFor(m => m.Name) for (int i = 0; i < Model.Subjects.Count; i++) { @Html.HiddenFor(m => m.Subjects[i].ID) @Html.DisplayFor(m => m.Subjects[i].Name) for (int j = 0; j < Model.Subjects[i].Questions.Count; j++) { @Html.HiddenFor(m => m.Subjects[i].Questions[j].ID) @Html.DisplayFor(m => m.Subjects[i].Questions[j].QuestionString) foreach (var answer in Model.Subjects[i].Questions[j].PossibleAnswers) { <div> @Html.RadioButtonFor( m => m.Subjects[i].Questions[j].SelectedAnswer, answer.ID, new { id = $"question_{SubjectQuestions[i].Questions[j].ID}_answer_{answer.ID}" }) <label for="@answer.ID">@answer.Text</label> </div> } } } <input type="submit" value="save" /> }
Pengawal:
public ActionResult Edit(int ID) { StudentVM model = new StudentVM(); // Populate model with data from database return View(model); } [HttpPost] public ActionResult Edit(StudentVM model) { // Save and redirect return RedirectToAction("Index"); }
Ini diubah suai kod:
Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan Butang Radio dengan Betul mengikut Soalan dalam ASP.NET MVC 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!