无法使用Kendo ui网格

时间:2017-07-27 17:59:06

标签: kendo-ui kendo-grid asp.net-core-1.1

这是我的行动方法

 public ActionResult Kendo([DataSourceRequest]DataSourceRequest request )
    {
        var emp = EmployeeManager.GetAllEmployees();

        DataSourceResult result = emp.ToDataSourceResult(request);
        return Json(result);
    }


这是我从官方网站上获取的网格代码

@model IEnumerable<MyProject.Web.Models.EmployeeViewModels.EmployeeViewModel>

@using Kendo.Mvc.UI;

@(Html.Kendo().Grid<TalentPro.Employees.Employee>()
      .Name("grid")
      .DataSource(dataSource => dataSource //Configure the Grid data source.
          .Ajax() //Specify that Ajax binding is used.
          .Read(read => read.Action("Kendo", "Home")
          ) //Set the action method which will return the data in JSON format.

       )
      .Columns(columns =>
      {
          //Create a column bound to the ProductID property.
          columns.Bound(product => product.Id);
          //Create a column bound to the ProductName property.
          columns.Bound(product => product.FirstName);
          //Create a column bound to the UnitsInStock property.
          columns.Bound(product => product.LastName);
          columns.Bound(product => product.EmailId);
          columns.Bound(product => product.PhoneNumber);
      })
      .Pageable() // Enable paging
      .Sortable() // Enable sorting

我已经通过官方文档帮助我将Kendo ui与我的 Asp.net核心项目集成在一起。但我不知道哪里出错了,它没有将数据与网格绑定。

我一直在尝试多种方式,但没有用。任何人都可以帮我解决这个问题。
提前致谢。

2 个答案:

答案 0 :(得分:2)

终于得到了解决方案这些是我所做的改变

  1. 将ActionResult更改为JsonResult
  2. 在startup.cs中添加了另外一行 &#34; .AddJsonOptions(options =&gt; options.SerializerSettings.ContractResolver = new DefaultContractResolver());&#34;
    感谢coby

答案 1 :(得分:1)

在您的控制器方法中,替换

return Json(result, JsonRequestBehavior.AllowGet);

<div className="grid-x" data-draftjs-init="true">
      <div className="cell" data-draftjs-init="true"></div>
</div>

出于安全原因,MVC默认为DenyGet,因此您必须手动将其设置为AllowGet,否则它将无法正确返回。

重要的是要注意,如果正在使用的浏览器是旧版本(它已被修复),这可能会向您返回的JSON对象暴露一个小漏洞。如果您传递特别敏感的信息并且您的用户能够从过时的浏览器访问该页面,那么这应该只是一个问题。

您可以阅读有关主题HEREHERE的更多信息。