如何循环遍历多个数组?

时间:2015-09-22 12:11:17

标签: c# asp.net-mvc razor

我有2个数组,一个有问题,另一个有关于我当前项目的FAQ页面的答案。

如果这看起来像一个简单的问题,我很抱歉,但我不确定如何能够遍历这些数组,生成包含它们的HTML,然后动态插入问题和答案。< / p>

根据以下代码

,问题本身非常简单
@{
   var Questions = ViewData["Questions"];
   var Answers = ViewData["Answers"];
 }
 @foreach (var question in (string[])ViewData["Questions"])
 {
    var html = string.Format(@"
       <div class='panel-group' id='accordion{1}'>
         <div class='panel panel-default'>
           <div class='panel-heading'>
              <h4 class='panel-title'>
                 <a class='accordion-toggle collapsed' data-toggle='collapse' data-parent='#accordion{1}' href='#collapse{1}'>{0}</a>
              </h4>
          </div>
          <div id='collapse{1}' class='panel-collapse collapse '>
             <div class='panel-body'>answer</div>
          </div>
      </div>", question, IDGenerator);
      @Html.Raw(html);
     IDGenerator.Append("1");

   }

我尝试使用嵌套的foreach语句来执行此操作,但是这会生成6个值,而我不确定如何将Viewdata["Answers"]中的值插入到字符串中,与现有问题一起插入而不重复。

我可能对此有所了解吗?非常感谢任何和所有的帮助。

1 个答案:

答案 0 :(得分:2)

完美的场景是创建一个ViewModel,其中包含您需要的所有信息(问题/答案),并将viewModel列表作为模型返回给您的视图。无论如何,为两个数组提供相同的大小,您可以使用BACKUP LOG <db> TO DISK='NUL' GO DBCC SHRINKFILE(<TransactionLogName>, 1) GO 语句并通过for访问每个元素。样本:

index