Kendo Grid 未绑定到数据(使用剃刀页面)

问题描述 投票:0回答:1

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”。

如果有人可以提供帮助或提供另一种实施方式,我将不胜感激。

非常感谢。

asp.net-core kendo-ui kendo-grid kendo-asp.net-mvc
1个回答
0
投票

将方法更改为这种格式解决了该问题。不知道怎么办!! 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));

© www.soinside.com 2019 - 2024. All rights reserved.