Masalah:
Dalam projek ASP.NET MVC 5, percubaan untuk mencipta berbilang kumpulan butang radio menggunakan gelung menyebabkan hanya satu kumpulan yang terbentuk, menyahpilih yang dipilih sebelum ini pilihan.
Kod:
foreach(var question in Model.GeneralQuestions) { <div class = "well"> <h3> <strong>@question.QuestionString</strong> </h3> @foreach (var answer in question.PossibleAnswers) { @Html.RadioButtonFor(model => question.QuestionString, answer.Answer) @Html.Label(answer.Answer) <br /> } </div> }
Penyelesaian:
1. Gunakan Model Paparan:
Tentukan model paparan yang mewakili data yang ingin anda paparkan dan edit. Dalam kes ini, adalah perlu untuk mencipta model paparan untuk Soalan dan Subjek untuk mewakili struktur model data anda.
2. Jana Butang Radio dalam Gelung:
Buat gelung untuk menjana butang radio. Setiap butang harus mempunyai atribut nama yang unik berdasarkan soalan dan konteks subjeknya. Contohnya:
foreach (var subject in Model.Subjects) { @Html.HiddenFor(m => subject.ID) foreach (var question in subject.Questions) { @Html.HiddenFor(m => question.ID) <div> @Html.RadioButtonFor(m => subject.Questions[j].SelectedAnswer, answer.ID, new { id = answer.ID }) <label for="@answer.ID"> @answer.Text </label> </div> } }
3. Ikat pada Sifat Model:
Pastikan bahawa butang radio nama atribut mengikat dengan betul pada sifat dalam model anda. Setiap kumpulan butang radio harus mempunyai sifat yang berasingan untuk menahan jawapan yang dipilih.
4. Laraskan Tindakan Pengawal:
Ubah suai tindakan pengawal Edit untuk mengisi model paparan dengan nilai daripada pangkalan data dan untuk mengendalikan penyerahan borang dengan menyimpan jawapan yang dipilih.
Ingat untuk menyemak HTML yang dijana oleh paparan untuk mengesahkan bahawa atribut butang radio nama adalah berstruktur dengan betul untuk mengikat model anda semasa penyerahan borang.
Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan Butang Radio dengan Betul dalam ASP.NET MVC 5 Menggunakan Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!