Telerik Kendo 新手,遇到了一个愚蠢的场景,但一直让我抓狂。 无论我做什么,剑道网格根本不会填充数据。 下面是在剑道网格中显示测试数据的 Razor 页面:
@model IEnumerable<Mynamespace.Models.MyModel>
@addTagHelper *, Kendo.Mvc
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>MyTitle</title>
<link href="https://kendo.cdn.telerik.com/2023.1.301/styles/kendo.default-v2.min.css" rel="stylesheet" />
<script src="https://kendo.cdn.telerik.com/2023.1.301/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2023.1.301/js/kendo.all.min.js"></script>
</head>
<body>
<div>
@(Html.Kendo().Grid<Mynamespace.Models.MyModel>()
.Name("MyKendoGrid")
.Columns(columns =>
{
columns.Bound(c => c.Name).Title("Full Name");
columns.Bound(c => c.Address).Title("Address");
columns.Bound(c => c.Age).Title("Age");
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetData", "MyData"))
.Model(model =>
{
model.Field(c => c.Name);
model.Field(c => c.Address);
model.Field(c => c.Age);
})
)
.HtmlAttributes(new { style = "height: 550px;" })
)
</div>
</body>
</html>
这是控制器:
namespace Mynamespace.Controllers
{
public class MyDataController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult GetData() {
List<MyModel> data = new()
{
new() { Name= "testName1", Address= "Address 1", Age= "32"},
new() { Name= "testName1", Address= "Address 2", Age= "12" },
new() { Name= "testName1", Address= "Address 3", Age= "34" },
};
return Json(data);
}
}
}
这是模型:
namespace Mynamespace.Models
{
public class MyModel
{
public string? Name{ get; set; }
public string? Address{ get; set; }
public decimal Age{ get; set; }
}
}
这也是标准控制器路由:
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
尝试使用控制器操作 GetData 中填充的测试数据填充 MyKendoGrid。但未能如愿。我可以调试并在浏览器中看到 GetData() 确实返回 json 列表,但 razor 页面不会填充“em”。
如果有人可以提供帮助或提供另一种实施方式,我将不胜感激。
非常感谢。
将方法更改为这种格式解决了该问题。不知道怎么办!! public IActionResult GetData([DataSourceRequest] DataSourceRequest request) { 列表数据 = new() { new() { Name= "testName1", Address= "地址 1", Age= "32"}, new() { Name= "testName1" ", 地址= "地址2", 年龄= "12" }, new() { 名称= "testName1", 地址= "地址3", 年龄= "34" }, };返回 Json(data.ToDataSourceResult(request));