System.ArgumentOutOfRangeException:索引必须在List的范围内

时间:2014-08-07 07:34:25

标签: asp.net-mvc-4 kendo-ui kendo-grid

所以我在我的MVC项目中使用了kendo UI,我正在使用网格来显示数据。但是我一直收到这个错误。

我的控制器:

[ActionName("session-confirm")]
public ActionResult SessionConfirm()
{

    AddSessionViewModel objviewmodel = new AddSessionViewModel();
    List<ErrorListViewModel> objError = new List<ErrorListViewModel>();

var ErrorList = TempData["ErrorArry"] as List<String>;
       //int i = 0;
   for (var i = 0; i < ErrorList.Count; i = i + 5)
    {

        objError.Add(new ErrorListViewModel
        {

            Child = ErrorList[i],
            Error1 = ErrorList[i+1],
            Error2 = ErrorList[i+2],
            Error3 = ErrorList[i+3],
            Error4 = ErrorList[i+4]
        });

    }
   objviewmodel.ErrorArry = objError;
    return View(objviewmodel);

[更新] 即使我累了用这个替换我的控制器:

string sid = "6";
            var ResultinComplete = db.sp_get_MandateInfo(sid).ToList();

            foreach (var list in ResultinComplete)
            {
                objError.Add(new ErrorListViewModel
                 {

                    Child = list.GroupSize,
                    Error1 = list.Language,
                    Error2 = list.Location,
                    Error3 = list.Frequency

                });
            }

我的观点是:

 @(Html.Kendo().Grid(Model.ErrorArry)
               .Name("Grid")
               .Columns(Columns => 
                   {
                       Columns.Bound(m => m.Child).Width(200).Title("Child");

                       Columns.Bound(m => m.Error1).Width(200).Title("Group Size")
                            .Template(@<text> 
                       @if (!string.IsNullOrEmpty(item.Error1))
                       {
                                           <span >@TempData["Group"]</span>
                       }
                       else
                       {
                                            <span style="color:Red;">@TempData["Group"]</span>
                       } 
                                           </text>);
                       Columns.Bound(m => m.Error2).Width(200).Title("Duration")
                           .Template(@<text> 
                       @if (!string.IsNullOrEmpty(item.Error2))
                       {
                                           <span >@TempData["Duration"]</span>
                       }
                       else
                       {
                                            <span style="color:Red;">@TempData["Duration"]</span>
                       } 
                                           </text>);
                       Columns.Bound(m => m.Error3).Width(200).Title("Language")
                            .Template(@<text> 
                       @if (!string.IsNullOrEmpty(item.Error3))
                       {
                                           <span >@TempData["Language"]</span>
                       }
                       else
                       {
                                            <span style="color:Red;">@TempData["Language"]</span>
                       } 
                                           </text>);

                   })
                   .Pageable(pageable => pageable
            .Refresh(true)
            .PageSizes(true)
            .ButtonCount(5))


            .Sortable()
            )

我检查了Kendo UI参考,它很好,在我的代码中我有TempDate [&#34; ErrorArry&#34;]这是nx5数组转储到TempData。

我看到很少有关于web.config设置的解决方案,但对我没有用。 我添加了

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

但在页面上收到web.config错误。我想是因为我已经在我的web.config文件中有这行了

<compilation debug="true" targetFramework="4.5">
      <assemblies>

        <add assembly="System.Data.Entity,oldVersion=1.0.0.0-4.0.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      </assemblies>
    </compilation>

任何人都知道这个问题是什么?

0 个答案:

没有答案