【发布时间】:2015-08-23 21:17:22
【问题描述】:
我正在尝试将 Kendo Grid 与来自 SQL 的数据绑定。该表出现但未填充任何数据。我无法弄清楚出了什么问题。感谢所有帮助!
这是我的控制器:
public ActionResult Test()
{
return View();
}
[HttpGet]
public ActionResult Test_Read([DataSourceRequest] DataSourceRequest request)
{
return Json(GetCountries().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
[NonAction]
private IQueryable<CountryViewModel> GetCountries()
{
return from user in database.Countries
select new CountryViewModel
{
Id = user.Id,
Name = user.Name,
};
}
这是我的 ViewModel:
public class CountryViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
这是实体模型数据向导自动生成的模型:
public partial class Country
{
public Country()
{
this.Cities = new HashSet<City>();
this.Regions = new HashSet<Region>();
}
public int Id { get; set; }
public string Name { get; set; }
public System.DateTime CreatedDate { get; set; }
public virtual ICollection<City> Cities { get; set; }
public virtual ICollection<Region> Regions { get; set; }
}
这是视图:
@(Html.Kendo().Grid<Traveler.Models.CountryViewModel>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("Test_Read", "Home").Type(HttpVerbs.Get))
)
.Columns(columns =>
{
columns.Bound(user => user.Id).Width(100);
columns.Bound(user => user.Name).Width(100);
})
.Pageable()
.Sortable()
.ColumnMenu()
.Resizable(resize => resize.Columns(true))
.Scrollable()
.HtmlAttributes(new { style = "height:100%;" })
.Filterable()
.Reorderable(reorder => reorder.Columns(true))
.ColumnMenu()
.Pageable(p => p.Enabled(true).Input(true).PageSizes(new[] { 10, 20, 50 }).Refresh(true))
)
【问题讨论】:
-
几个问题 1) 首先击中的是控制器吗? 2)如果返回的是什么数据(您是否检查过提琴手或开发人员工具等)?
-
您的网格中有两个
Pageable()s 和ColumnMenu()s。删除多余的。 -
我可能缺少参考资料吗?
标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc