如何在确认的情况下从Kendo Grid中删除行,并将选定的ID传递给Destroy方法?下面是我的cshtml代码:
@(Html.Kendo().Grid<EmailTemplateEditor.Models.EmailTemplate>()
.Name("EmailTemplates")
.Columns(columns =>
{
columns.Bound(c => c.ID).ClientTemplate("<a href='/EmailTemplate/EmailTemplate/#=ID#'>#=ID#</a>");
columns.Bound(c => c.Name);
columns.Bound(c => c.Subject);
columns.Bound(c => c.OperationalBrand);
columns.Bound(c => c.Body);
columns.Bound(c => c.DateAdded).Format("{0:MM/dd/yyyy}");
columns.Command(command => command.Destroy()).Width(110);
})
.HtmlAttributes(new { style = "height: 700px;" })
.Scrollable()
.Groupable()
.AutoBind(true)
.Sortable()
.Filterable()
.Pageable(pageable => pageable
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.ID))
.Read(read => read.Action("GetEmailTemplates", "Home"))
.PageSize(20)
.ServerOperation(true)
.Destroy(update => update.Action("Delete", "Home", Model.ID))
)
)
下面是我的控制器方法:
[HttpPost]
public ActionResult Delete([DataSourceRequest] DataSourceRequest request, int ID)
{
Worker.DeleteEmailTemplate(ID);
return View();
}
当我运行这段代码时,我得到一个错误,告诉我Model.ID为空。如果我不能以这种方式访问当前行的ID,我该怎么做呢?我真的希望避免重构它来使用“传输”风格的数据源,但如果这是唯一的方法,请让我知道。下面是UI的外观:
谢谢
发布于 2018-05-30 08:20:22
将您的销毁命令更改为以下内容。
.Destroy(update => update.Action("Delete", "Home"))
然后,您的控制器将:
public ActionResult Delete([DataSourceRequest] DataSourceRequest request, EmailTemplate myModel)
然后,您可以使用以下命令访问id:
myModel.ID
https://stackoverflow.com/questions/50593680
复制相似问题