Kendo ui Grid mvc 与 sql 数据库
Posted
技术标签:
【中文标题】Kendo ui Grid mvc 与 sql 数据库【英文标题】:Kendo ui Grid mvc with sql database 【发布时间】:2014-08-05 16:25:01 【问题描述】:我正在尝试为我在 SQL Server 中的驱动程序表创建一个网格视图。
这是我的课程:
Driver.cs
:
public partial class Driver
public Driver()
this.CarsToDrivers = new HashSet<CarsToDriver>();
public System.Guid Id get; set;
public string Name get; set;
public string FamilyName get; set;
public string Licence get; set;
public Nullable<short> ExperienceYears get; set;
public int UserId get; set;
public virtual ICollection<CarsToDriver> CarsToDrivers get; set;
CarsToDriver.cs
:
public partial class CarsToDriver
public CarsToDriver()
this.Role_TimeRestriction = new HashSet<Role_TimeRestriction>();
public System.Guid Id get; set;
public System.Guid CarId get; set;
public System.Guid DriverId get; set;
public string KilometersDriven get; set;
public virtual Car Car get; set;
public virtual Driver Driver get; set;
public virtual Role_DayRestriction Role_DayRestriction get; set;
public virtual ICollection<Role_TimeRestriction> Role_TimeRestriction get; set;
由于循环引用,我创建了一个 viewModel 类:
DriverViewModel.cs
:
public class DriverViewModel
public DriverViewModel()
this.CarsToDrivers = new HashSet<CarsToDriverViewModel>();
public Guid Id get; set;
public String Name get; set;
public String FamilyName get; set;
public String Licence get; set;
public short? ExperienceYears get; set;
public int UserId get; set;
public virtual ICollection<CarsToDriverViewModel> CarsToDrivers get; set;
我创建了一个控制器:
DriverController.cs
:
public class DriverController : Controller
private CarManagerDbEntities db = new CarManagerDbEntities();
// GET: Driver
public ActionResult Index()
return View();
public JsonResult Get([DataSourceRequest]DataSourceRequest request)
var drivers = db.Drivers.Select(d => new DriverViewModel()
ExperienceYears = d.ExperienceYears,
Id = d.Id,
UserId = d.UserId,
Name = d.Name,
FamilyName = d.FamilyName,
Licence = d.Licence
);
return this.Json(drivers.ToDataSourceResult(request));
Index.cshtml
:
@using CarManagerWebApplication.Models
@(Html.Kendo().Grid<DriverViewModel>()
.Name("Driver")
.Columns(columns =>
columns.Bound(o => o.Name);
columns.Bound(o => o.FamilyName);
columns.Bound(o => o.Licence);
columns.Bound(o => o.ExperienceYears);
)
.DataSource( d => d
.Ajax()
.Read(r => r.Action("Get", "Driver")) )
.Filterable()
.Pageable()
.Sortable()
.Groupable()
)
就像在本教程中一样:https://www.youtube.com/watch?v=3egh1pFjZ88
但我得到的结果没有条目。
更新
在调试时我得到了这个 javascript 错误:
11:57:12.6249: Referenced file 'jquery.validate.js' not found.
11:57:12.6249: Referenced file 'jquery.validate.unobtrusive.js' not found.
11:57:12.6249: Referenced file 'knockout-2.2.0.debug.js' not found.
我将丢失的文件添加到脚本文件夹,但我仍然收到此错误
我注意到我没有输入“Get”方法。 我做错了什么?
【问题讨论】:
调试代码时会发生什么?控制器是否被击中?您是否在控制台中收到 javascript 错误?如果不了解更多信息,则很难说出错误可能是什么,因为一切看起来都很好。 感谢您的回答,我更新了问题。 您是否尝试过使用 fiddler 来查看操作是否被调用?例如,您是否得到 404。此外,您在页面布局中包含了哪些脚本。也许你错过了一个。 【参考方案1】:在您的控制器中,我认为您需要明确告诉它是 Get,因此您需要在方法名称 [GET] 上方添加,因为控制器操作实际上并未调用 Get(),因此它不知道您是尝试执行获取。
【讨论】:
以上是关于Kendo ui Grid mvc 与 sql 数据库的主要内容,如果未能解决你的问题,请参考以下文章
设置 Kendo UI Grid Popup (MVC) 的宽度
MVC Kendo UI Grid = 自定义按钮无法返回选定的行 ID
asp.net mvc kendo ui grid 加密列数据