4

根据要求,我的 VIEW 上有一个 Kendo UI 网格。但遗憾的是,控制器中没有击中读取功能。这很烦人,我遇到了同样的问题,即使一切似乎都符合文档在http://demos.kendoui.c​​om/web/grid/index.html上提供。这是我的查看代码:

 @(Html.Kendo().Grid<StudentManagement_Models.Student>()
.Name("studentsGrid")
.Columns(columns =>
{

    columns.Bound(p => p.Id).Groupable(false);
    columns.Bound(p => p.FirstName);
    columns.Bound(p => p.MiddleName);
    columns.Bound(p => p.LastName);
    columns.Bound(p => p.CGPA);



})
    .AutoBind(true)
    .Pageable()
    .Navigatable()
    .Sortable()
    .DataSource(dataSource => dataSource
            .Ajax()
                            .Read(read => read.Action("GetAllStudents", "Student"))
            )
        )

这是我的控制器操作:

 public ActionResult GetAllStudents([DataSourceRequest] DataSourceRequest request)
    {
        //Thread.Sleep(2000);
        StudentManagement_Models.Student student = new StudentManagement_Models.Student();
        StudentHelper helper = new StudentHelper();
        student.SavedStudents = helper.GetAllStudents();

        return Json(student.SavedStudents.ToDataSourceResult(request));
    }

我将如何解决这个问题?我错过了什么吗?请建议。

提前致谢。

4

5 回答 5

6

在您的页面中添加所有此文件

<script src="~/Script/Jquery-1.8.1.min.js" type="text/javascript"></script>
<script src="~/Script/jquery-ui-1.8.20.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Script/kendo.all.min.js")" type="text/javascript"></script>
<script src="~/Script/kendo.web.min.js" type="text/javascript"></script>
<script src="~/Script/kendo.aspnetmvc.min.js" type="text/javascript"></script>
<link href="~/Content/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="~/Content/kendo.default.min.css" rel="stylesheet" type="text/css" />

我认为你js在你的页面中错过了其中一个,很可能Jquery-1.8.1.min.js

于 2013-08-26T12:50:36.280 回答
5

我对 MVC 版本有类似的问题。

我注意到我得到了 404,但是当单击 Chrome 调试器中的 404 链接时,它确实会命中我的控制器方法。然后我注意到它正在使用 POST(并且我指定了 HttpVerbs.Get)。

然后我发现了这个(来自http ://docs.kendoui.c​​om/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/troubleshooting ):

默认情况下,ASP.NET MVC 的 Kendo Grid 在为 ajax 绑定配置时应该发出 POST 请求。这是由自定义 DataSource 传输和模式实现的。这些在 kendo.aspnetmvc.min.js 中定义。确保此文件包含在其他 Kendo JavaScript 文件之后。

在验证脚本的顺序确实正确(并且知道它可能与 POST 有关)之后,我在网格中指定了在 Read 末尾使用的动词,如下所示:

.Read(read => read.Action("MyList_Read", "Diagnosis").Type(HttpVerbs.Get))

这解决了我的问题。

于 2013-09-17T16:39:50.290 回答
3

尝试使用 JQuery 的 document.ready() 调用 read 方法

$(document).ready(function () { var grid = $("#studentsGrid").data("kendoGrid")
grid.dataSource.read()
})

saveStudent 也是一种学生.... Ur 网格绑定到 Student 但您正在返回 SavedStudent 对象

于 2013-08-19T13:23:57.053 回答
2

“默认情况下,ASP.NET MVC 的 Kendo Grid 在为 ajax 绑定配置时应该发出 POST 请求。” ??? 对于 Kendo UI 版本 2014.1.318,我认为,默认情况下,asp.net mvc 的 Kendo Grid 在配置为 ajax 绑定时会发出 GET 请求。

于 2014-05-23T06:57:32.460 回答
0

我发现如果同一个网页上有两个网格(在这种情况下,在不同的选项卡中),那么每个网格必须在 MVC 控制器中有自己的数据源方法——即使两个网格都使用相同的数据,

于 2015-06-12T11:34:15.047 回答