問題:
在ASP.NET MVC 5在專案中,嘗試使用循環建立多組單選按鈕會導致僅形成一組,取消選擇先前選取的
程式碼:
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> }
解決方案:
1.使用視圖模型:
定義表示要顯示和編輯的資料的視圖模型。在這種情況下,有必要為 Questions 和 Subjects 建立視圖模型來表示資料模型的結構。
2.在循環中產生單選按鈕:
建立一個循環來產生單選按鈕。每個按鈕都應該有一個基於其問題和主題上下文的唯一名稱屬性。例如:
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。綁定到模型屬性:
確保單選按鈕 name 屬性正確綁定到模型中的屬性。每組單選按鈕應該有一個單獨的屬性來保存所選答案。
4.調整控制器操作:
修改控制器編輯操作以使用資料庫中的值填充視圖模型,並透過儲存視圖模型,並透過儲存視圖選答案來處理表單提交。
請記得檢查視圖產生的 HTML,以驗證單選按鈕 name 屬性的結構是否正確,以便綁定到表單上的模型提交。
以上是如何使用循環在 ASP.NET MVC 5 中正確對單選按鈕進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!