问题:
在 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中文网其他相关文章!