Asp.net mvc 4 从apicontroller绑定剑道ui网格
我使用的是剑道ui JQuery版本,我试图从ApiController填充剑道ui网格。我的网格仍然是空的。。。我错过了什么 以下是我的ApiController的结果:~/api/Countries:Asp.net mvc 4 从apicontroller绑定剑道ui网格,asp.net-mvc-4,asp.net-web-api,kendo-ui,kendo-grid,asp.net-apicontroller,Asp.net Mvc 4,Asp.net Web Api,Kendo Ui,Kendo Grid,Asp.net Apicontroller,我使用的是剑道ui JQuery版本,我试图从ApiController填充剑道ui网格。我的网格仍然是空的。。。我错过了什么 以下是我的ApiController的结果:~/api/Countries: [{"Id":4,"Name":"Germany"}, {"Id":5,"Name":"China"}, {"Id":6,"Name":"Myanmar"}] 这是我的ApiController代码: public class CountriesController : ApiContr
[{"Id":4,"Name":"Germany"},
{"Id":5,"Name":"China"},
{"Id":6,"Name":"Myanmar"}]
这是我的ApiController代码:
public class CountriesController : ApiController
{
private DBContext db = new DBContext();
// GET api/Countries
[Queryable]
public IQueryable<Country> GetCountries()
{
return db.Countries;
}
}
以下是我的cshtml代码:
<script type='text/javascript'>
$(document).ready(function () {
$("#grid").kendoGrid({
columns: [
{ field: "Id", title: "id" },
{ field: "Name", title: "name" }
],
dataSource: new kendo.data.DataSource({
transport: {
read: "api/Countries"
},
schema: {
model: {
id: "Id",
fields: {
Id: { type: "number" },
Name: { type: "string" }
}
}
},
pageSize: 3
}),
pageable: true
});
});
</script>
谢谢你的帮助。剑道网格没有以正确的格式恢复Json。 确保使用KendoMVC DataSourceRequest对象以正确的格式返回数据,以供网格使用 以下是一个例子:
public ActionResult Update([DataSourceRequest] DataSourceRequest request, MyViewModel data)
{
var result = UpdateBackend(data);
return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
查看MVC剑道演示页面,了解更多示例:
在我对剑道数据源的API调用中,我总是必须指定它是json返回数据类型,我认为它默认为jsonp
dataSource: new kendo.data.DataSource({
transport: {
read: {
url: "/api/Countries",
dataType: 'json'
}
},
schema: {
model: {
id: "Id",
fields: {
Id: { type: "number" },
Name: { type: "string" }
}
}
},
pageSize: 3
}),
如果您观察网络流量,是否有针对api/国家/地区的请求,如果有,响应代码是什么?谢谢Robin,我通常会检查网络流量,但这次没有检查。不知道为什么!!无论如何,响应是空的,因为在我的例子中url应该是/api/Countries,而不是api/Countries。这是工作!谢谢你,乔纳森。我有点迷路了。我使用的是JQuery剑道UI,所以是客户端站点。我想我不需要服务器端的KendoMVC。我错了吗?此外,我的问题是关于ApiController的。我已经成功地使用了标准的MVC控制器,添加了如下内容{data:关于Kendo支持的json结果。如果我是正确的,ApiController调用的结果可以是json以外的格式。除了使用DataSourceRequest发送Kendo支持的结果之外,没有其他方法吗?正如前面的其他评论所说,问题是url api/Countries而不是/api/Countries。