我在视图中添加了一个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()
%>
答案 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);
}
}