根据要求,我在我的VIEW上有一个Kendo UI网格。但是很遗憾,读取功能没有在控制器中被击中。这很烦人,即使每个人看起来像是一样,我也会遇到同样的问题根据{{3}}提供的文件。这是我的查看代码:
@(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));
}
我如何解决这个问题?我错过了什么?请提出建议。
提前致谢。
答案 0 :(得分: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" />
我认为您错误地点击了您网页中的js
,Jquery-1.8.1.min.js
。
答案 1 :(得分:4)
我遇到了与MVC版本类似的问题。
我注意到我收到了404但是当点击Chrome调试器中的404'd链接时,它确实会触及我的控制器方法。然后我注意到它正在使用POST(并且我有HttpVerbs.Get)指定。
然后我发现了这个(来自http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/troubleshooting):
默认情况下,用于ASP.NET MVC的Kendo Grid应该在何时发出POST请求 配置为ajax绑定。这是通过自定义实现的 DataSource传输和架构。那些是在。中定义的 kendo.aspnetmvc.min.js。确保在此之后包含此文件 其他Kendo JavaScript文件。
在验证脚本确实处于正确的顺序之后(并且知道它可能与POST有关)我在网格中的Read的末尾指定了动词:
.Read(read => read.Action("MyList_Read", "Diagnosis").Type(HttpVerbs.Get))
这解决了我的问题。
答案 2 :(得分:3)
尝试使用JQuery的document.ready()
调用read方法 $(document).ready(function ()
{
var grid = $("#studentsGrid").data("kendoGrid")
grid.dataSource.read()
})
也是保存学生类型的学生.... Ur网格绑定到学生,但是你正在返回SavedStudent对象
答案 3 :(得分:1)
“默认情况下,用于ASP.NET MVC的Kendo Grid应该在配置为ajax绑定时发出POST请求。”??? 对于Kendo UI版本2014.1.318,我认为,默认情况下,用于asp.net mvc的Kendo Grid在配置为ajax绑定时会发出GET请求。
答案 4 :(得分:0)
我发现如果同一网页上有两个网格(在这种情况下,在不同的标签中),那么每个网格必须在MVC控制器中有自己的数据源方法 - 即使两个网格都使用相同的数据,< / p>