错误'不能从bool转换为列表<当在另一个for循环中的for循环中使用checkboxfor时

本文关键字:循环 for 另一个 checkboxfor 不能 bool 列表 转换 错误 | 更新日期: 2023-09-27 18:17:12

我正在尝试创建一个测验,测验有需要单个答案的问题和需要多个答案的问题被选择。对于需要选择多个答案的问题,我使用Checkboxfor helper。为了这个问题,我将缩短我所有的代码。我有一个视图模型被发送到页面:

public class QuizViewModel
{
    public int QuizQuestionID { get; set; }
    public int QuizID { get; set; }
    public int EnrollmentID { get; set; }
    public int OldCoursePageID { get; set; }
    public string Question { get; set; }
    public int Order { get; set; }
    public int Type { get; set; }
    public string SelectedAnswer { get; set; }
    public IList<QuizAnswers> QuizAnswers { get; set; }

}

在viewModel中使用的QuizAnswers模型:

public class QuizAnswers
{
    [Key]
    public int QuizAnsID { get; set; }
    public int QuizQuestionID { get; set; }
    public string Answer { get; set; }
    public int Order { get; set; }
    public bool Correct { get; set; }
    public virtual QuizQuestions QuizQuestions { get; set; }
}

在我看来,我有一个循环用于问题,然后用于答案:

for (var i = 0; i < Model.Count(); i++)
{
if (Model[i].Type == 2)
            {
                for (int k = 0; k < Model[i].QuizAnswers.Count(); k++)
                {
                    <li>
                        @Html.CheckBoxFor(Model[i].QuizAnswers[k].Correct, new { value = false, id = "checkanswer", data_questionid = @Model[i].Order })
                        @Html.DisplayFor(model => Model[i].QuizAnswers[k].Answer)
                    </li>
                }
            }
}

我正在接收helper复选框上的错误。我计划为复选框返回的布尔值创建一个字段,但是我只是测试了一下,看看我是否可以创建帮助器,并使用复选框布尔值填充已经存在的正确布尔值字段,然后遇到了这个问题。

就我所见:

Model[i].QuizAnswers[k].Correct

应该提供一个bool值来填充非列表。我哪里做错了?

错误'不能从bool转换为列表<当在另一个for循环中的for循环中使用checkboxfor时

您缺少Html.CheckBoxFormodel =>部分。如果你像在@Html.DisplayFor中那样添加它它应该会消除错误