Kendo UI Grid不会调用READ方法

Pra*_*nna 4 kendo-ui kendo-grid kendo-asp.net-mvc

根据要求,我在我的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"))
            )
        )
Run Code Online (Sandbox Code Playgroud)

这是我的控制器动作:

 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));
    }
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我错过了什么吗?请提出建议.

提前致谢.

Jai*_*min 7

在页面中添加所有此文件

<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" />
Run Code Online (Sandbox Code Playgroud)

我认为你误解了js你页面中的一个Jquery-1.8.1.min.js.


Mik*_*eel 5

我在MVC版本中遇到类似的问题。

我注意到我收到了404,但是在Chrome调试器中单击404链接时,确实可以使用我的控制器方法。然后我注意到它使用的是POST(并且我有HttpVerbs.Get)。

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

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

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

.Read(read => read.Action("MyList_Read", "Diagnosis").Type(HttpVerbs.Get))
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题。