如何显示数据库存储的问题,允许个别答案

时间:2013-07-29 21:15:54

标签: c# asp.net-mvc-3 loops

我有一个包含几百个问题的表,问题(id,QuestionText)。我还没有完全弄清楚答案表,但可能是:User_Answer表,User_Answer(id,personid,questionid,answer_type,答案)和答案表,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循环进行循环?

2 个答案:

答案 0 :(得分:2)

使用带索引的for循环。 RadioButtonFor输出所有项目的相同名称/ ID。

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

   @Html.RadioButtonFor(modelitem => Model[i].Answer, "Yes") Yes

答案 1 :(得分:0)

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

请注意你给他们的名字,因为他们必须匹配你的模特(但这是另一个故事!)。

编辑 - 请参阅Doogie的回答,它解决了这两个问题。