asp.net-mvc – Kendo ASP.NET MVC – 索引超出范围数据绑定

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Kendo ASP.NET MVC – 索引超出范围数据绑定前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试将数据表绑定到Telerik Kendo Grid时,我收到以下错误

指数超出范围.必须是非负数且小于集合的大小.

我已经关注了Telerik的示例项目,但在我的代码中,它似乎没有在’DataSource’的’Read’函数上失败:

.Read(read => read.Action(“Read”,“Events”))

我有ActionResult Read()当前返回null,只是因为我想看看它是否甚至使它成为该函数.此外,我已经介入,数据表返回正确的列和列名称.

任何帮助表示赞赏.

Events.cshtml

  1. @model System.Data.DataTable
  2.  
  3. @{
  4. ViewBag.Title = "Events";
  5. Layout = "~/Views/_mainLayout.cshtml";
  6. }
  7.  
  8. <p>Events</p>
  9.  
  10. @(Html.Kendo().Grid(Model)
  11. .Name("GridStatic")
  12. .Columns(columns =>
  13. {
  14. columns.Bound("ID");
  15. columns.Bound("EntryType");
  16. columns.Bound("EventDate");
  17. columns.Bound("EventData");
  18. columns.Bound("Source");
  19. })
  20. .Pageable()
  21. .Sortable()
  22. .Scrollable()
  23. .Filterable()
  24. .DataSource(dataSource => dataSource
  25. .Ajax()
  26. .Model(model =>
  27. {
  28. model.Field("ID",typeof(int));
  29. model.Field("EntryType",typeof(DateTime));
  30. model.Field("EventDate",typeof(string));
  31. model.Field("EventData",typeof(string));
  32. model.Field("Source",typeof(string));
  33. })
  34. .Read(read => read.Action("Read","Events"))
  35. )
  36. )

EventsController.cs

  1. public class EventsController : Controller
  2. {
  3. //
  4. // GET: /Events/
  5.  
  6. public ActionResult Events(string sName)
  7. {
  8. EventReader ereader = new EventReader(sName);
  9. return View(ereader.ParseIntoTable(ereader.GetListOfEvents()));
  10. }
  11.  
  12. public ActionResult Read([DataSourceRequest] DataSourceRequest request)
  13. {
  14. return null;
  15. }
  16. }

更新::

这是堆栈跟踪,我不确定这是否有帮助.

  1. [ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
  2. Parameter name: index]
  3. System.ThrowHelper.ThrowArgumentOutOfRangeException() +72
  4. System.Collections.ObjectModel.Collection`1.set_Item(Int32 index,T value) +10451574
  5. System.Web.Mvc.ControllerContext.get_RequestContext() +25
  6. Kendo.Mvc.UI.NavigatableExtensions.GenerateUrl(INavigatable navigatable,ViewContext viewContext,IUrlGenerator urlGenerator) +52
  7. Kendo.Mvc.UI.Fluent.CrudOperationBuilder.SetUrl() +81
  8. Kendo.Mvc.UI.Fluent.CrudOperationBuilder.Action(String actionName,String controllerName,Object routeValues) +66
  9. Kendo.Mvc.UI.Fluent.CrudOperationBuilder.Action(String actionName,String controllerName) +47
  10. ASP._Page_Views_Events_Events_cshtml.b__3(CrudOperationBuilder read) in c:\Users\wsharp\Documents\Visual Studio 2010\Projects\Inviso\Inviso\Views\Events\Events.cshtml:40
  11. Kendo.Mvc.UI.Fluent.AjaxDataSourceBuilderBase`2.Read(Action`1 configurator) +131
  12. ASP._Page_Views_Events_Events_cshtml.b__2(DataSourceBuilder`1 dataSource) in c:\Users\wsharp\Documents\Visual Studio 2010\Projects\Inviso\Inviso\Views\Events\Events.cshtml:30
  13. Kendo.Mvc.UI.Fluent.GridBuilder`1.DataSource(Action`1 configurator) +212
  14. ASP._Page_Views_Events_Events_cshtml.Execute() in c:\Users\wsharp\Documents\Visual Studio 2010\Projects\Inviso\Inviso\Views\Events\Events.cshtml:16
  15. System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
  16. System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +97
  17. System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage) +76
  18. System.Web.Mvc.RazorView.RenderView(ViewContext viewContext,Object instance) +260
  19. System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext,TextWriter writer) +115
  20. System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +295
  21. System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext,ActionResult actionResult) +13
  22. System.Web.Mvc.c__DisplayClass1a.b__17() +23
  23. System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,ResultExecutingContext preContext,Func`1 continuation) +242
  24. System.Web.Mvc.c__DisplayClass1c.b__19() +21
  25. System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList`1 filters,ActionResult actionResult) +177
  26. System.Web.Mvc.Async.c__DisplayClass2a.b__20() +89
  27. System.Web.Mvc.Async.c__DisplayClass25.b__22(IAsyncResult asyncResult) +102
  28. System.Web.Mvc.Async.WrappedAsyncResult`1.End() +57
  29. System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +43
  30. System.Web.Mvc.c__DisplayClass1d.b__18(IAsyncResult asyncResult) +14
  31. System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +23
  32. System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
  33. System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +57
  34. System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +23
  35. System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
  36. System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +47
  37. System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
  38. System.Web.Mvc.c__DisplayClass8.b__3(IAsyncResult asyncResult) +25
  39. System.Web.Mvc.Async.c__DisplayClass4.b__3(IAsyncResult ar) +23
  40. System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
  41. System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +47
  42. System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
  43. System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629296
  44. System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +155
@H_404_26@

解决方法

原来它与我的web.config有关.我在创建的每个Kendo对象中都遇到了错误.将以下代码添加到顶级web.config似乎可以解决所有问题.
  1. <runtime>
  2. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  3. <dependentAssembly>
  4. <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  5. <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  6. </dependentAssembly>
  7. </assemblyBinding>
  8. </runtime>
@H_404_26@ @H_404_26@

猜你在找的asp.Net相关文章