C# 如何在MVC5视图中迭代IEnumerable而不使用foreach或for循环

C# 如何在MVC5视图中迭代IEnumerable而不使用foreach或for循环,c#,entity-framework,asp.net-mvc-5,C#,Entity Framework,Asp.net Mvc 5,我正在创建调查问卷应用程序,在其中我必须加载随机问题并从用户那里获得答案。 我想知道,我应该如何使用按钮迭代记录。 我知道如何使用foreach/for循环在视图上显示数据,但要求我必须一次显示一个问题,获取答案,将其存储在列表中,当用户按下“下一步”按钮时,我必须向用户显示下一个问题记录。 在这方面,我将不胜感激。 谢谢 我在这里附上了我的示例代码: 查看模型类: public class ExamViewModel { public IEnumerable<Question&g

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

查看模型类:

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);
    }
}
公共类ExamViewModel
{
公共IEnumerable问题列表{get;set;}
公共字符串标题{get;set;}
公共问题GetQuestionAtIndex(IEnumerable questionsList,int index=0)
{
返回问题列表元素(索引);
}
}
视图:

@Model.Heading
@{
int指数=0;
var-question=Model.GetQuestionAtIndex(Model.QuestionsList,index);
}
  • @问题,问题文本

以下是一个基本概述:

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


这只是一种方法,但您也可以使用表单提交而不是ajax。

您是用javascript完成这一切,还是每次都要将答案提交给服务器?我想将每个答案结果存储在列表中,并在整个测试结束时提交该列表。(10个问题后再说)这听起来更像是将答案存储在javascript数组中,然后在最后通过表单提交或ajax提交。您可能希望在开始时加载所有问题,并使用jquery显示/隐藏各个问题。非常感谢您的指导,您可以通过显示一些示例代码来指导我吗?单击链接会产生错误404。找不到页面!这里是链接:我从编辑区得到的。谢谢它为我工作。我将对其进行修改。:)我有一个更新,修复了引导的东西,但显然没有保存。
<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>