Asp.net mvc 4 &引用;“未定义”不是一个函数;使用仅包含带有asp.mvc包装和数据源的网格的KendoUI自定义下载时出错

Asp.net mvc 4 &引用;“未定义”不是一个函数;使用仅包含带有asp.mvc包装和数据源的网格的KendoUI自定义下载时出错,asp.net-mvc-4,kendo-ui,kendo-grid,kendo-asp.net-mvc,Asp.net Mvc 4,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正在尝试实现一个定制的剑道下载,它只包含ASP.NETMVC4项目中的网格,该项目使用razor生成网格,还使用服务器端代码生成网格数据。我已在生成这些脚本的自定义下载页面中选择了适用的字段: 我已将脚本和css包含在my_layout.cshtml页面的标题标记中: 调用网格的代码绑定到具有两个字符串属性(name,desc)的简单模型,并调用控制器操作: @(Html.Kendo().Grid<GridStandAloneTest.Models.GridModel>() .

我正在尝试实现一个定制的剑道下载,它只包含ASP.NETMVC4项目中的网格,该项目使用razor生成网格,还使用服务器端代码生成网格数据。我已在生成这些脚本的自定义下载页面中选择了适用的字段:

我已将脚本和css包含在my_layout.cshtml页面的标题标记中:

调用网格的代码绑定到具有两个字符串属性(name,desc)的简单模型,并调用控制器操作:

@(Html.Kendo().Grid<GridStandAloneTest.Models.GridModel>()
.Name("Grid")
.Sortable()
.Pageable()
.DataSource(ds => ds.Ajax().Read("GetPeople", "Home")
    .Batch(true)
    .ServerOperation(false))
.Columns(x => 
{
    x.Bound(c => c.Name);
    x.Bound(c => c.Salary); 
}))
@(Html.Kendo().Grid())
.名称(“网格”)
.Sortable()
.Pageable()
.DataSource(ds=>ds.Ajax().Read(“GetPeople”,“Home”)
.Batch(真)
.ServerOperation(错误))
.列(x=>
{
x、 绑定(c=>c.Name);
x、 约束(c=>c.工资);
}))
当页面呈现网格时,网格是可见的,但永远不会调用控制器操作。我在控制台中还得到一个“UncaughtTypeError:undefined不是一个函数”。但是,如果我单击某个列,它会调用控制器操作,但随后它会将其返回到一个新选项卡,并在URL下显示JSON数据

控制器代码如下所示:

    public ActionResult GetPeople([DataSourceRequest]DataSourceRequest DataSource)
    {
        var people = new List<GridStandAloneTest.Models.GridModel>()
        {
            new GridStandAloneTest.Models.GridModel(){Name = "Jon", Salary = "50,000"},
            new GridStandAloneTest.Models.GridModel(){Name = "Joe", Salary = "100,000"}
        };

        DataSourceResult result = people.ToDataSourceResult(DataSource);

        return Json(result, JsonRequestBehavior.AllowGet);
    }
public ActionResult GetPeople([DataSourceRequest]DataSourceRequest DataSource)
{
var people=新列表()
{
新的GridStandAloneTest.Models.GridModel(){Name=“Jon”,Salary=“50000”},
新的GridStandAloneTest.Models.GridModel(){Name=“Joe”,Salary=“100000”}
};
DataSourceResult=people.ToDataSourceResult(数据源);
返回Json(结果,JsonRequestBehavior.AllowGet);
}

您包括了
jQuery 1.7.1
,以及最新版本的KendoUI Require
1.9.1+


您至少有两个问题:

  • 您多次包含jQuery。确保jQuery只包含一次,否则网格js将中断
  • 在复制时,我注意到,即使我选择了Pager.js文件,它似乎也没有包含在自定义构建中。我得到的错误是一个
    实例
    不是一个指向检查寻呼机代码位置的函数

  • 我相信我在某个地方读到过jQuery版本需要具体化,并且会弄乱它们,但是我会再次检查并将结果发布到这里。@codekiller-是的,如果您查看我包含的剑道文档链接,您将看到每个剑道版本所需的jQuery版本。将该版本更新为jQuery 1.9.1,但仍然得到相同的错误,“Uncaught TypeError:undefined不是函数”。此外,我确保在重建后检查控制台中的版本。即使您使用的是自定义版本,您可能仍然需要包括
    kendo.aspnetmvc.js
    文件(在kendo自定义js之后),我在自定义版本中选择了该文件,但只是为了确保我还将其添加为另一个src文件。我仍然得到了相同的结果。您是否尝试过删除
    Batch(true)
    ServerOperation(false)
    以查看这是否有任何作用?我唯一能想到的是,我也试过了。你认为我会不恰当地构建这个包吗?我将再次检查文档,以确保我没有错过任何步骤(如您注意到的jquery版本),只是为了确保。也许可以尝试使用完整版本,而不是您的自定义版本,只是为了看看您是否仍然会遇到错误?我记不起屏幕截图(背景为黑色)之前是否存在,但是我仍然没有看到
    aspnetmvc.min.js
    。另外,我刚刚注意到jQuery是在Kendo之后-jQuery需要放在第一位。对不起,我读错了-我的道歉。奇怪的是,我使用CDN显式地获取正确的脚本,而不是自定义下载程序,这似乎很有帮助。