Asp.net mvc 如何将模型用作KendoUIGrid的数据源?
我只得到一个网格,里面没有数据。我是MVC新手,无法找到如何仅使用传递到视图页面的模型将数据添加到网格中。下面是我使用的代码 控制器代码:Asp.net mvc 如何将模型用作KendoUIGrid的数据源?,asp.net-mvc,view,model,telerik,kendo-grid,Asp.net Mvc,View,Model,Telerik,Kendo Grid,我只得到一个网格,里面没有数据。我是MVC新手,无法找到如何仅使用传递到视图页面的模型将数据添加到网格中。下面是我使用的代码 控制器代码: public ActionResult List() { List<CustomerModel> list = new List<CustomerModel>(); for (int i = 0; i < 7; i++) { CustomerMo
public ActionResult List()
{
List<CustomerModel> list = new List<CustomerModel>();
for (int i = 0; i < 7; i++)
{
CustomerModel model = new CustomerModel();
model.Id = 1;
model.Name = "Alice";
model.Address = "Blk "+i;
model.PostalCode = ""+i+i+i;
model.Email = i+"@yahoo.com";
model.TelephoneNumber = i + i + i + i + i + i+"";
list.Add(model);
}
return View(list);
}
public ActionResult Read()
{
List<CustomerModel> list = new List<CustomerModel>();
for (int i = 0; i < 7; i++)
{
CustomerModel model = new CustomerModel();
model.Id = 1;
model.Name = "Alice";
model.Address = "Blk " + i;
model.PostalCode = "" + i + i + i;
model.Email = i + "@yahoo.com";
model.TelephoneNumber = i + i + i + i + i + i + "";
list.Add(model);
}
return View(list);
}
public ActionResult List()
{
列表=新列表();
对于(int i=0;i<7;i++)
{
CustomerModel模型=新CustomerModel();
模型Id=1;
model.Name=“Alice”;
model.Address=“Blk”+i;
model.PostalCode=”“+i+i+i;
model.Email=i+“@yahoo.com”;
model.TelephoneNumber=i+i+i+i+i+i+“”;
列表。添加(模型);
}
返回视图(列表);
}
公共行动结果读取()
{
列表=新列表();
对于(int i=0;i<7;i++)
{
CustomerModel模型=新CustomerModel();
模型Id=1;
model.Name=“Alice”;
model.Address=“Blk”+i;
model.PostalCode=”“+i+i+i;
model.Email=i+“@yahoo.com”;
model.TelephoneNumber=i+i+i+i+i+i+“”;
列表。添加(模型);
}
返回视图(列表);
}
查看代码:
@using TKMVC.Models
@model IEnumerable<CustomerModel>
@(Html.Kendo().Grid<CustomerModel>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
})
.Read(read => read.Action("Read", "Home"))
)
)
<div class="clearfix"></div>
@使用TKMVC.Models
@模型IEnumerable
@(Html.Kendo().Grid())
.名称(“网格”)
.DataSource(DataSource=>DataSource
.Ajax()
.ServerOperation(真)
.Model(Model=>
{
model.Id(p=>p.Id);
model.Field(p=>p.Id).可编辑(false);
})
.Read(Read=>Read.Action(“Read”,“Home”))
)
)
您混合了本地和ajax数据绑定,并且没有在网格中定义任何列
尝试将模型传递到网格中,定义网格列并从数据源中删除读取请求。在您的案例中,最可能需要关闭服务器操作
您的网格语句应该如下所示:
@(Html.Kendo().Grid(模型)
.名称(“网格”)
.列(列=>
{
columns.Bound(m=>m.Id);
columns.Bound(m=>m.Name);
})
.DataSource(DataSource=>DataSource
.Ajax()
.ServerOperation(错误)
.Model(Model=>
{
model.Id(p=>p.Id);
model.Field(p=>p.Id).可编辑(false);
})
)
)
我在where.DataSource(DataSource=>DataSource)行中看到“无法将lambda表达式转换为类型‘string’,因为它不是委托类型”这意味着什么?不知道。这应该行得通。这条语句中唯一的字符串是网格名称。与Telerik示例的唯一区别是模型定义。如果这真的是个问题,它可能是个bug,值得向Telerik报告。