Kendo grid delete命令未触发(MVC)

时间:2013-06-23 19:17:31

标签: asp.net-mvc-3 grid kendo-ui

我使用删除命令设置了一个Kendo网格。

按下删除按钮时,永远不会触发删除操作。

这是我的代码:

观点:

@(Html.Kendo().Grid<portal.Models.UserVisitor>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(v => v.visitorName).Filterable(false).Title("Visitors");
        columns.Command(command => command.Destroy());
    })
    .Sortable()
    .Scrollable()
    .Filterable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .ServerOperation(false)
        .Batch(true)
        .Model(model =>
        {
            model.Id(v => v.fkVisitorId);
            model.Field(v => v.visitorName).Editable(false);
        })
        .PageSize(20)
        .Read(read => read.Action("Visitors_Read", "Visitor"))
        .Destroy(update => update.Action("Visitors_Delete", "Visitor"))
     )
    .Resizable(resize => resize.Columns(true))
)

控制者访客:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Visitors_Delete([DataSourceRequest] DataSourceRequest request,UserVisitor model)
    {
        return Json(ModelState.ToDataSourceResult());
    }        

有谁知道这有什么问题?

2 个答案:

答案 0 :(得分:4)

如果希望Destroy命令立即命中服务器,则需要使用InLine编辑模式:

@(Html.Kendo().Grid<portal.Models.UserVisitor>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(v => v.visitorName).Filterable(false).Title("Visitors");
        columns.Command(command => command.Destroy());
    })
    .Sortable()
    .Scrollable()
    .Filterable()
    .Editable(editable => editable.Mode(GridEditMode.InLine))
    .DataSource(dataSource => dataSource
        .Ajax()
        .ServerOperation(false)
        .Batch(true)
        .Model(model =>
        {
            model.Id(v => v.fkVisitorId);
            model.Field(v => v.visitorName).Editable(false);
        })
        .PageSize(20)
        .Read(read => read.Action("Visitors_Read", "Visitor"))
        .Destroy(update => update.Action("Visitors_Delete", "Visitor"))
     )
    .Resizable(resize => resize.Columns(true))
)

答案 1 :(得分:3)

尝试明确定义网格应采取的操作。

.Destroy(update => update.Action("Visitors_Delete", "Visitor")).Type(HttpVerbs.Post))