asp core kendo ui grid не показывает данные - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть сетка kendo ui, которая использует модель бритвы для получения своих данных. Сетка показывает правильное имя столбца, но не показывает никаких данных. Я могу убедиться, что данные возвращаются, но сетка не отображает их. Я следовал этому примеру: Ссылка на образец ,

Ниже приведен код для запуска, контроллера и страницы cshtml.

Проект выполняется в .NET Core 2.0, а контроллер наследуется от Microsoft.AspNetCore.Mvc.Controller, где образец наследуется от BaseController.

Любая помощь приветствуется! заранее спасибо.

Startup.cs - Настройка:

    // Configure Kendo UI
    app.UseKendo(env);

Startup.cs - ConfigureServices:

services.AddMvc()
        .AddJsonOptions(options =>
         options.SerializerSettings.ContractResolver = new DefaultContractResolver());

        //Add Kendo UI services to the services container
        services.AddKendo();

CONTROLLER:

 var response = _personService.LoadById(id).Result;
 return View(response);

CSHTML:

    @(Html.Kendo().Grid<Pet>(Model.Person.Pets)
                   .Name("Grid")
                   .Columns(columns =>
                   {
                       columns.Bound(p => p.Name).Title("Pet Name");
                   })
                   .Pageable()
                   .Sortable()
                   .Scrollable(scr => scr.Height(430))
                   .Filterable()
                   .DataSource(dataSource => dataSource
                       .Ajax()
                       .PageSize(20)
                       .ServerOperation(false)
                    )
                )

1 Ответ

0 голосов
/ 14 ноября 2018

Вам нужно указать IEnumerable в качестве модели представления, затем вы можете передать данные следующим образом:

Действие контроллера:

    public IActionResult Index()
    {
        var petList = new List<Pet>();

        petList.Add(new Pet { Name = "Cat" });
        petList.Add(new Pet { Name = "Dog" });

        return View(petList);
    }

Index.cshtml

@model IEnumerable<TelerikAspNetCoreApp1.Models.Pet>

<div class="row">
    <div class="col-xs-18 col-md-12">
        @(Html.Kendo().Grid(Model)
            .Name("petgrid")
            .Columns(columns =>
            {
                columns.Bound(p => p.Name);
            })
            .Pageable()
            .Sortable()
            .Scrollable()
            .Filterable()
            .DataSource(dataSource => dataSource
                .Ajax()
                .PageSize(20)
            )
        )
    </div>
</div>
...