Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengumpulkan Butang Radio dengan betul mengikut Soalan dalam ASP.NET MVC 5?
Isu:
Apabila mengumpulkan butang radio mengikut soalan dalam ASP Paparan .NET MVC 5, semua butang radio diletakkan dalam satu kumpulan, menjadikannya mustahil untuk memilih jawapan untuk berbilang soalan secara bebas.
Penyelesaian:
Untuk mengumpulkan butang radio dengan betul, anda perlu memastikan bahawa setiap soalan mempunyai atribut nama yang unik. Ini boleh dicapai dengan menggunakan indeks gelung dan model lihat untuk mengikat butang radio pada model yang ditaip.
Lihat Model:
Pertama, buat model paparan yang akan digunakan untuk mewakili data dan menjana borang.
public class QuestionVM { public int ID { get; set; } public string Text { get; set; } public int? SelectedAnswer { get; set; } } public class SubjectVM { public int? ID { get; set; } public string Name { get; set; } public List<QuestionVM> Questions { get; set; } } public class StudentVM { public int ID { get; set; } public string Name { get; set; } public List<SubjectVM> Subjects { get; set; } }
Lihat:
Dalam paparan, gunakan kaedah @Html.BeginForm untuk mencipta elemen borang dan kemudian jana butang radio menggunakan @ Html.RadioButtonFor kaedah.
@model YourAssembly.StudentVM @using(Html.BeginForm()) { // Hidden field for unique student identifier @Html.HiddenFor(m => m.ID) // Student name (with no binding) @Html.DisplayFor(m => m.Name) // Iterate over subjects and questions for(int i = 0; i < Model.Subjects.Count; i++) { // Hidden field for subject identifier (if any) @Html.HiddenFor(m => m.Subjects[i].ID) // Display subject name @Html.DisplayFor(m => m.Subjects[i].Name) for (int j = 0; j < Model.Subjects[i].Questions.Count; j++) { // Hidden field for question identifier @Html.HiddenFor(m => m.Subjects[i].Questions[j].ID) // Display question text (with no binding) @Html.DisplayFor(m => m.Subjects[i].Questions[j].Text) foreach(var answer in Model.Subjects[i].Questions[j].PossibleAnswers ) { // Bind radio button to property on QuestionVM @Html.RadioButtonFor(m => m.Subjects[i].Questions[j].SelectedAnswer, answer.ID, new { id = answer.ID}) <label for="@answer.ID">@answer.Text</label> } } } // Submit button <input type="submit" value="save" /> }
Pengawal:
Dalam tindakan pengawal yang mengendalikan penyerahan borang, anda boleh mengakses data yang diserahkan melalui model StudentVM.
[HttpPost] public ActionResult Edit(StudentVM model) { // Save and redirect (not shown) }
Dengan menggunakan model paparan dan kaedah @Html.RadioButtonFor, anda boleh memastikan bahawa setiap soalan mempunyai atribut nama yang unik, yang akan membolehkan butang radio dikumpulkan dengan betul.
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!