2

我有一个包含几百个问题的表格,Question(id, QuestionText)。我还没有完全弄清楚答案表,但可能类似于:User_Answer 表 User_Answer(id, personid, questionid, answer_type, answer) 和答案表 Answer_Type(id, type)。类型是“是/否”、数字、文本。

我设置了查询以获取我需要的问题,具体取决于页面,但我在视图中的编码方面遇到了一些问题。目前我有:

            foreach (var item in Model) {
                <div class="question-label">
                       @Html.DisplayFor(modelItem => item.QuestionText)
                </div>
                <div class="question-field">
                       @Html.RadioButtonFor(modelitem => item.Answer, "Yes") Yes
                       @Html.RadioButtonFor(modelitem => item.Answer, "No") No
                </div>
            }

问题显示得很好,但在这种情况下,单选按钮认为它们都在一组中。这个页面上有 12 个问题,虽然每个问题都有一对单独的是/否按钮,但我只能为整个页面选择一个是或否。我是否需要设置一个数组,以便我可以使用 for 循环进行循环?

4

2 回答 2

2

请改用带有索引的 for 循环。RadioButtonFor正在为所有项目输出相同的名称/ID。

所以你的剃须刀可能看起来像:

   @Html.RadioButtonFor(modelitem => Model[i].Answer, "Yes") Yes
于 2013-07-29T21:19:54.793 回答
0

为每组单选按钮指定相同的名称。那应该解决它。

请注意您给他们起的名字,因为他们必须与您的模型相匹配(但那是另一回事了!)。

编辑见 Doogie 的回答,它解决了这两个问题。

于 2013-07-29T21:21:49.313 回答