gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:35:55 27 4
gpt4 key购买 nike

尝试将数据表绑定(bind)到 Telerik Kendo Grid 时出现以下错误:

索引超出范围。必须为非负数且小于集合的大小。

我遵循了 Telerik 的示例项目,但在我的代码中,“DataSource”的“读取”功能似乎失败了:

.Read(read => read.Action("Read", "Events"))

我的 ActionResult Read() 当前返回 null,只是因为我想看看它是否能够到达该函数。另外,我已经单步执行,数据表返回了正确的列和列名称。

感谢任何帮助。

Events.cshtml

@model System.Data.DataTable

@{
ViewBag.Title = "Events";
Layout = "~/Views/_mainLayout.cshtml";
}

<p>Events</p>

@(Html.Kendo().Grid(Model)
.Name("GridStatic")
.Columns(columns =>
{
columns.Bound("ID");
columns.Bound("EntryType");
columns.Bound("EventDate");
columns.Bound("EventData");
columns.Bound("Source");
})
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Field("ID", typeof(int));
model.Field("EntryType", typeof(DateTime));
model.Field("EventDate", typeof(string));
model.Field("EventData", typeof(string));
model.Field("Source", typeof(string));
})
.Read(read => read.Action("Read", "Events"))
)
)

EventsController.cs

public class EventsController : Controller
{
//
// GET: /Events/

public ActionResult Events(string sName)
{
EventReader ereader = new EventReader(sName);
return View(ereader.ParseIntoTable(ereader.GetListOfEvents()));
}

public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
return null;
}
}

更新::

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

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

最佳答案

原来它与我的 web.config 有关。我创建的每个 Kendo 对象都遇到了错误。将以下代码添加到顶层 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>

关于asp.net-mvc - Kendo ASP.NET MVC - 索引超出范围数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15386380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com