如何将Kendo UI MVC扩展与require js一起使用?

平方千米

我有一个看起来像这样的控制器:

using System.Collections.Generic;
using System.Web.Mvc;

using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;

namespace KendoMvcApplication.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult GetData([DataSourceRequest] DataSourceRequest req)
        {
            var products = CreateProducts();
            var result = products.ToDataSourceResult(req);
            return Json(result);
        }     

        private static IEnumerable<Product> CreateProducts()
        {
            for (int i = 1; i <= 20; i++)
            {
                yield return new Product
                {
                    ProductId = i,
                    ProductName = "Product " + i,
                    ProductPrice = i * 2.5
                };
            }
        }
    }

    public class Product
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public double ProductPrice { get; set; }
    }
}

看起来像这样的视图:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link href="~/Content/kendo.common.min.css" rel="stylesheet" />
    <link href="~/Content/kendo.default.min.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/require.js"></script>
</head>
<body>            
<div id="grid"></div>
<script type="text/javascript">            
    require.config({
        baseUrl : '@Url.Content("~/Scripts")',
        paths: {
            'jquery': 'jquery-2.0.3.min',
            'kendo': 'kendo-ui'
        },
        shim: {
            'jquery': {
                exports: 'jQuery'
            }
        }            
    });           
    require(['jquery', 'kendo/kendo.grid.min'], function ($) {
        $(document).ready(function () {
            $('#grid').kendoGrid({
                dataSource: {
                    schema: {
                        data: 'Data',
                        total: 'Total',
                        aggregates: 'AggregateResults',
                        model: {
                            id: "ProductId",
                            fields: {
                                ProductName: { type: "string" },
                                ProductPrice: { type: "number" }
                            }
                        }
                    },
                    transport: {
                        read: {
                            url: "@Url.Action("GetData", "Home")",
                            dataType: "json",
                            method: "post"
                        }
                    },
                    pageSize: 10,
                    serverPaging: true,
                    serverSorting: true,
                    type: "aspnetmvc-ajax"
                },
                sortable: {
                    mode: "single"
                },
                columns: ["ProductName", "ProductPrice"],
                scrollable: false,
                pageable: true
            });
        });            
    });
</script>
</body>
</html>

我的目录结构是:

  • 脚本/ kendo-ui / *(所有的kendo文件,包括mvc之一)
  • 脚本/require.js
  • 脚本/jquery-2.0.3.min.js

几乎工程,除了不应用服务器端排序。

这是因为从不下载kendo.aspnet.mvc.min.js文件(当然,因为JS对此一无所知),所以我尝试这样做:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link href="~/Content/kendo.common.min.css" rel="stylesheet" />
    <link href="~/Content/kendo.default.min.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/require.js"></script>
</head>
<body>            
<div id="grid"></div>
<script type="text/javascript">
    require.config({
        baseUrl: '@Url.Content("~/Scripts")',
        paths: {
            'jquery': 'jquery-2.0.3.min',
            'kendo': 'kendo-ui',
            'kendo-mvc': 'kendo/kendo.aspnetmvc.min'
        },
        shim: {
            'jquery': {
                exports: 'jQuery'
            }
        }
    });
    require(['jquery', 'kendo-mvc', 'kendo/kendo.grid.min'], function ($) {
        $(document).ready(function () {
            $('#grid').kendoGrid({
                dataSource: {
                    schema: {
                        data: 'Data',
                        total: 'Total',
                        aggregates: 'AggregateResults',
                        model: {
                            id: "ProductId",
                            fields: {
                                ProductName: { type: "string" },
                                ProductPrice: { type: "number" }
                            }
                        }
                    },
                    transport: {
                        read: {
                            url: "@Url.Action("GetData", "Home")",
                            dataType: "json",
                            method: "post"
                        }
                    },
                    pageSize: 10,
                    serverPaging: true,
                    serverSorting: true,
                    type: "aspnetmvc-ajax"
                },
                sortable: {
                    mode: "single"
                },
                columns: ["ProductName", "ProductPrice"],
                scrollable: false,
                pageable: true
            });
        });
    });
</script>
</body>
</html>

但这产生了这个错误:

分割配置错误

并尝试加载js文件,从而:

尝试1个文件

在脚本文件夹下的kendo文件夹中寻找js文件时,找不到红色斑点404。

所以后来我想我会尝试包括所有版本,所以我尝试了这个:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link href="~/Content/kendo.common.min.css" rel="stylesheet" />
    <link href="~/Content/kendo.default.min.css" rel="stylesheet" />
    <script type="text/javascript" src="~/Scripts/require.js"></script>
</head>
<body>            
<div id="grid"></div>
<script type="text/javascript">
    require.config({
        baseUrl: '@Url.Content("~/Scripts")',
        paths: {
            'jquery': 'jquery-2.0.3.min',
            'kendo': 'kendo-ui/kendo.all.min',
            'kendo-mvc': 'kendo-ui/kendo.aspnetmvc.min'
        },
        shim: {
            'jquery': {
                exports: 'jQuery'
            }
        }
    });
    require(['jquery', 'kendo', 'kendo-mvc'], function ($) {
        $(document).ready(function () {
            $('#grid').kendoGrid({
                dataSource: {
                    schema: {
                        data: 'Data',
                        total: 'Total',
                        aggregates: 'AggregateResults',
                        model: {
                            id: "ProductId",
                            fields: {
                                ProductName: { type: "string" },
                                ProductPrice: { type: "number" }
                            }
                        }
                    },
                    transport: {
                        read: {
                            url: "@Url.Action("GetData", "Home")",
                            dataType: "json",
                            method: "post"
                        }
                    },
                    pageSize: 10,
                    serverPaging: true,
                    serverSorting: true,
                    type: "aspnetmvc-ajax"
                },
                sortable: {
                    mode: "single"
                },
                columns: ["ProductName", "ProductPrice"],
                scrollable: false,
                pageable: true
            });
        });
    });
</script>
</body>
</html>

但这产生了以下错误:

ASP NET MVC错误

并尝试加载js文件,从而:

案例2档案

在这种情况下-找不到红色斑点404,因为它是直接在Scripts文件夹下查找文件。

所以这是我的问题:

如何在要求JS类型的场景中包含所述文件?

另外:我想使用kendo.all.min文件,而不要使用单独的文件,因为将来我想使用基因敲除kendo,这似乎不适用于单独的文件,但是如果要这样做的话,这是唯一的方法是使用单独的文件方法,那很好。

奥林

我花了一段时间才能使您的代码正常工作,但经过一番摆弄之后,我设法对排序进行了修改,而您的原始代码只做了很小的更改。

我唯一更改的是在还添加了mvc文件的require行上。然后,所有路径都变得正确,并且一切顺利。

['jquery', 'kendo/kendo.grid.min', 'kendo/kendo.aspnetmvc.min']

在我的代码中,我将“ ASP.NET MVC Q2 2013的Kendo UI”与该jQuery.min.js软件包中包含文件一起使用完整的View代码将变为:

<script type="text/javascript">            
  require.config({
    baseUrl : '@Url.Content("~/Scripts")',
    paths: {
        'jquery': 'jquery-2.0.3.min',
        'kendo': 'kendo-ui'
    },
    shim: {
        'jquery': {
            exports: 'jQuery'
        }
    }            
  });           
  require(['jquery', 'kendo/kendo.grid.min', 'kendo/kendo.aspnetmvc.min'], function ($) {
    $(document).ready(function () {
        $('#grid').kendoGrid({
            dataSource: {
                schema: {
                    data: 'Data',
                    total: 'Total',
                    aggregates: 'AggregateResults',
                    model: {
                        id: "ProductId",
                        fields: {
                            ProductName: { type: "string" },
                            ProductPrice: { type: "number" }
                        }
                    }
                },
                transport: {
                    read: {
                        url: "@Url.Action("GetData", "Home")",
                        dataType: "json",
                        method: "post"
                    }
                },
                pageSize: 10,
                serverPaging: true,
                serverSorting: true,
                type: "aspnetmvc-ajax"
            },
            sortable: {
                mode: "single"
            },
            columns: ["ProductName", "ProductPrice"],
            scrollable: false,
            pageable: true
        });
    });            
  });
</script>

我希望它也可以在您的代码中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Jquery-ui datepicker与require.js一起使用

来自分类Dev

将jquery-ui datepicker与require.js一起使用

来自分类Dev

将Vue JS与Require JS一起使用?

来自分类Dev

在ASP.NET MVC中将Kendo MultiSelect与Kendo UI网格一起使用

来自分类Dev

如何将GWTP与ginjector扩展一起使用?

来自分类Dev

Knockout-Kendo库是否设计为与Kendo UI ASP.NET MVC html帮助器一起使用?

来自分类Dev

如何将php数组转换为javascript数组以与Jquery UI datepicker一起使用?

来自分类Dev

如何将Material-UI TextField与react-phone-number-input一起使用

来自分类Dev

如何将php数组转换为javascript数组以与Jquery UI datepicker一起使用?

来自分类Dev

如何将 jquery ui 仅 datepicker 与 datemonth 一起使用?

来自分类Dev

如何将 SQL Server 数据库与编码的 UI 测试一起使用?

来自分类Dev

Kendo UI无法与Meteor一起使用?

来自分类Dev

kendo ui网格无法与.net core一起使用

来自分类Dev

将jQuery UI对话框与Backbone.js和RequireJS一起使用

来自分类Dev

将Material UI Link组件与Next.JS Link组件一起使用

来自分类Dev

Angular js:与require js一起使用时如何使用resolve

来自分类Dev

将Raphael与require js和eve js一起使用

来自分类Dev

将灰尘.js模板与ebrian.marionette和require.js一起使用

来自分类Dev

将Kendo Ui加载指示器与dataviz一起使用

来自分类Dev

将ui-router与视图转换一起使用

来自分类Dev

将ui:repeat与b:carousel一起使用?

来自分类Dev

将Django注册与Flat UI模板一起使用

来自分类Dev

将MPMoviePlayerController UI与LibVLC一起使用

来自分类Dev

将ui:repeat与b:carousel一起使用?

来自分类Dev

如何将数据单击绑定到使用Kendo UI填充在模板中的div?

来自分类Dev

如何将Crashlytics与iOS / OS X一起使用今天的扩展名?

来自分类Dev

如何将valgrind与实际上是宏扩展的函数一起使用

来自分类Dev

如何将扩展和折叠列表行与核心数据元素一起使用?

来自分类Dev

如何使Swagger UI与Swashbuckle一起使用端口443?

Related 相关文章

  1. 1

    将Jquery-ui datepicker与require.js一起使用

  2. 2

    将jquery-ui datepicker与require.js一起使用

  3. 3

    将Vue JS与Require JS一起使用?

  4. 4

    在ASP.NET MVC中将Kendo MultiSelect与Kendo UI网格一起使用

  5. 5

    如何将GWTP与ginjector扩展一起使用?

  6. 6

    Knockout-Kendo库是否设计为与Kendo UI ASP.NET MVC html帮助器一起使用?

  7. 7

    如何将php数组转换为javascript数组以与Jquery UI datepicker一起使用?

  8. 8

    如何将Material-UI TextField与react-phone-number-input一起使用

  9. 9

    如何将php数组转换为javascript数组以与Jquery UI datepicker一起使用?

  10. 10

    如何将 jquery ui 仅 datepicker 与 datemonth 一起使用?

  11. 11

    如何将 SQL Server 数据库与编码的 UI 测试一起使用?

  12. 12

    Kendo UI无法与Meteor一起使用?

  13. 13

    kendo ui网格无法与.net core一起使用

  14. 14

    将jQuery UI对话框与Backbone.js和RequireJS一起使用

  15. 15

    将Material UI Link组件与Next.JS Link组件一起使用

  16. 16

    Angular js:与require js一起使用时如何使用resolve

  17. 17

    将Raphael与require js和eve js一起使用

  18. 18

    将灰尘.js模板与ebrian.marionette和require.js一起使用

  19. 19

    将Kendo Ui加载指示器与dataviz一起使用

  20. 20

    将ui-router与视图转换一起使用

  21. 21

    将ui:repeat与b:carousel一起使用?

  22. 22

    将Django注册与Flat UI模板一起使用

  23. 23

    将MPMoviePlayerController UI与LibVLC一起使用

  24. 24

    将ui:repeat与b:carousel一起使用?

  25. 25

    如何将数据单击绑定到使用Kendo UI填充在模板中的div?

  26. 26

    如何将Crashlytics与iOS / OS X一起使用今天的扩展名?

  27. 27

    如何将valgrind与实际上是宏扩展的函数一起使用

  28. 28

    如何将扩展和折叠列表行与核心数据元素一起使用?

  29. 29

    如何使Swagger UI与Swashbuckle一起使用端口443?

热门标签

归档