第一个销毁按钮上缺少Kendo MVC Grid Action名称

时间:2015-07-29 15:08:29

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

我有一个使用MVC扩展的Kendo网格buitl:

        @(Html.Kendo().Grid<FooDetailViewModel>()
          .Name("fooGrid")
          .Editable(editable => editable.DisplayDeleteConfirmation("Are you sure you want to delete this item?"))
          .Sortable()
          .Pageable()
          .DataSource(datasource => datasource
              .Ajax()
              .Read(read => read.Action("GetFooSummaries", "Foo", new { categoryId = @Model.CategoryId }))
              .Model(model => model.Id(x => x.FooId))
              .Destroy(destroy => destroy.Action("Delete", "Foo"))
          .Columns(col =>
          {
              col.Bound(x => x.FooId).Hidden();
              col.Bound(x => x.FooNumber);
              col.Template(@<text></text>)
                  .ClientTemplate("<a class='blue-tableRowIcon glyphicon glyphicon-edit' href='" + Url.Action("Details", new { id = "#= Id #" }) + "'></a>" + "<div class='k-button-icontext k-grid-delete red-tableRowIcon glyphicon glyphicon-remove' ></div>"
                  )
                  .FooterTemplate("<a class='green-tableRowIcon glyphicon glyphicon-plus' href='" + Url.Action("Details", new { id = Guid.Empty }) + "'></a>")
                  .Title("Action")
                  .Width(94);
          }))

我的问题是,我点击的第一个删除按钮不会调用控制器上的删除操作,但会点击后续行。例如,如果网格显示两行数据,我单击删除按钮其中一个(无论哪一个),我将按预期获得确认对话框。如果我单击“确定”,对话框将关闭,并且呼叫将发送到控制器,但该呼叫似乎缺少其操作名称,因此呼叫转到“http://Site/Area/Foo”而不是“{{3} “如预期的那样。然后该行从客户端网格中消失,尽管从未调用控制器上的删除操作。

如果我然后单击其他行上的删除按钮并关闭对话框,则会呼叫控制器,但这次填写了操作名称,因此它正确连接到后端,我从数据库中删除该行。

刷新页面会恢复第一个“已删除”行,因为它从未真正删除过。

正如我所说,我先点击哪一行,或者甚至有多少行似乎并不重要。我尝试首先删除哪一行不能正确调用控制器,但任何后续删除都会。如果它始终是第一行或其他什么,我认为这是我的代码中某处的一个一个错误的错误,但事实上它始终只是你点击的那一行表示某处的状态问题。

我已经用destroy.Url调用了对destroy.Action的调用(Url.Action ......无济于事,它完全相同。

有没有人见过这个?你有没有弄清楚问题是什么?

0 个答案:

没有答案