如何在没有foreach或循环的MVC 5视图中迭代IEnumerable



我正在创建问卷应用程序,其中我必须加载随机问题并从用户那里获得答案。我想知道,如何使用按钮迭代记录。我知道如何使用foreach/for for for loop在视图上显示数据,但是要求我必须一次显示一个问题,获取答案,将其存储在列表中,当用户按"下一个"按钮时,我必须向用户介绍下一个问题记录。在这方面,我将不胜感激。谢谢。我在这里附上了示例代码:

查看模型类:

public class ExamViewModel
{
    public IEnumerable<Question> QuestionsList { get; set; }
    public string Heading { get; set; }
    public Question GetQuestionAtIndex(IEnumerable<Question> questionsList, int index = 0)
    {
        return questionsList.ElementAt(index);
    }
}

查看:

<h2>@Model.Heading</h2>
<div class="panel-body">
        @{
            int index = 0;
            var question = Model.GetQuestionAtIndex(Model.QuestionsList, index);
        }
        <div class="form-group">
            <div class="col-sm-8">
                <ul class="list-group">
                    <li class="list-group-item list-group-item-heading list-group-item-warning">
                        @question.QuestionText
                    </li>
                </ul>
            </div>
        </div>
</div>

这是一个基本轮廓:https://dotnetfiddle.net/xkdwlk

在该示例中,我只是将所有答案加载到数组中,然后使用AJAX将其发送给控制器。我没有编写控制器保存方法,因为我不知道您在那里需要什么,但是您可以填写。

这只是做到这一点的一种方法,但您也可以使用表单提交而不是Ajax。

最新更新