数据未在kendo网格中填充

时间:2014-02-13 13:00:54

标签: kendo-ui kendo-asp.net-mvc

我在视图中添加了一个kendo网格。该网格的数据源来自action方法 Products_Read在我的控制器中。我在我的项目中使用了实体数据模型。我已经添加了控制器和查看我的索引操作的代码。问题是数据没有进入网格。

控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
using MvcApplication1.Models;
namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

        public ActionResult Products_Read([DataSourceRequest]DataSourceRequest request)
        {
            using (var northwind = new productTableEntities())
            {
                IQueryable<product> products = northwind.products;
                DataSourceResult result = products.ToDataSourceResult(request);
                return Json(result);
            }
        }
    }
}

查看代码(我使用网格的部分):

 
<%: Html.Kendo().Grid<MvcApplication1.Models.product>()
      .Name("grid")
      .DataSource(dataSource => dataSource // Configure the grid data source
          .Ajax() // Specify that ajax binding is used
          .Read(read => read.Action("Products_Read", "Home")) // Set the action method which will return the data in JSON format
       )
      .Columns(columns =>
      {
          columns.Bound(product => product.id);   
          columns.Bound(product => product.name);
      }).Pageable().Sortable() 
%>

2 个答案:

答案 0 :(得分:2)

在与Ajay进行“评论聊天”后,他在第三方JS中发现了问题。

然而Ajay我建议你对Products_Read操作进行一些小的改进:1行和AllowGet行为。

using (var northwind = new productTableEntities())
        {
            return Json(northwind.products.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }

度过愉快的一天,

阿尔贝托

答案 1 :(得分:0)

您已使用Products_Read方法的ActionResult返回类型。我建议你将其改为JsonResult

public JsonResult Products_Read([DataSourceRequest]DataSourceRequest request)
{
    using (var northwind = new productTableEntities())
    {
        IQueryable<product> products = northwind.products;
        DataSourceResult result = products.ToDataSourceResult(request);
        return Json(result);
    }
}