【发布时间】:2014-08-24 08:40:50
【问题描述】:
我将 ASP.NET WebApi 与 KendoUI 结合使用。 Json 成功显示在网格中,因此 GET 有效。但我不能更新、创建或删除数据。路由有问题。
@(Html.Kendo().Grid<User>()
.Name("Grid")
.EnableCustomBinding(false)
.Columns(columns =>
{
columns.Bound(u => u.UserName);
columns.Bound(u => u.FullName);
columns.Bound(u => u.Email);
columns.Bound(u => u.Address);
columns.Bound(u => u.Phone);
columns.Command(c =>
{
c.Edit();
c.Destroy();
});
})
.ToolBar(tools => tools.Create())
.Sortable()
.Pageable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(u => u.Id);
model.Field(u => u.Id).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Url(Url.HttpRouteUrl("DefaultApi", new{controller="users"})).Type(HttpVerbs.Get))
.Create(create => create.Url(Url.HttpRouteUrl("DefaultApi", new{controller="users"})).Type(HttpVerbs.Post))
.Update(update => update.Url(Url.HttpRouteUrl("DefaultApi", new{controller="users"})).Type(HttpVerbs.Put))
.Destroy(destroy => destroy.Url(Url.HttpRouteUrl("DefaultApi", new{controller="users"})).Type(HttpVerbs.Delete))
)
)
<script type="text/javascript">
$(function () {
var grid = $("#Grid").data("kendoGrid");
grid.dataSource.transport.options.update.url = function (data) {
return "api/users/" + data.Id;
};
grid.dataSource.transport.options.destroy.url = function (data) {
return "api/users/" + data.Id;
};
});
</script>
Chrome 给我一个 404(未找到)错误:“DELETE http://localhost:6128/Home/api/users/2 404 (Not Found)”。如何在不带 Home 前缀的情况下将 url 更改为“http://localhost:6128/api/users/2”?
【问题讨论】:
标签: asp.net-mvc-4 kendo-asp.net-mvc asp.net-web-api-routing