我正在使用带有ASP.Net MVC Wrappers的Kendo UI网格。我的网格数据源定义如下:
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(p => p.Code);
})
.Read(read => read.Url("api/ProjectMilestone").Type(HttpVerbs.Get))
.Create(create => create.Url("api/ProjectMilestone").Type(HttpVerbs.Post))
.Update(update => update.Url("api/ProjectMilestone").Type(HttpVerbs.Put))
.Destroy(destroy => destroy.Url("api/ProjectMilestone").Type(HttpVerbs.Delete))
)
因此可以预期GET url将生成为[server]/[app]/api/ProjectMilestone
。
但就我而言,托管网格的页面位于以下网址:[server]/[app]/Project
。
这导致GET url生成为[server]/[app]/Project/api/ProjectMilestone
,当然服务器返回错误404未找到。
请告诉我如何将生成的GET网址生成为[server]/[app]/api/ProjectMilestone
。
答案 0 :(得分:2)
原来正确的方法是定义数据源如下:
.Read(read => read.Url(Url.RouteUrl("DefaultApi", new { httproute ="", controller="ProjectMilestone" })).Type(HttpVerbs.Get))
.Create(create => create.Url(Url.RouteUrl("DefaultApi", new { httproute ="", controller="ProjectMilestone" })).Type(HttpVerbs.Post))
.Update(update => update.Url(Url.RouteUrl("DefaultApi", new { httproute ="", controller="ProjectMilestone" })).Type(HttpVerbs.Put))
.Destroy(destroy => destroy.Url(Url.RouteUrl("DefaultApi", new { httproute ="", controller="ProjectMilestone" })).Type(HttpVerbs.Delete))
取自this回答。
答案 1 :(得分:0)
您是否尝试过使用“api”作为控制器的控制器名称和操作以及“ProjectMilestone”作为操作的重载?