C# 如何在确认的情况下从剑道网格中删除一行,并将所选ID传递到Destroy方法中
如何在确认并将所选ID传递到Destroy方法的情况下从剑道网格中删除一行?以下是我的cshtml代码:C# 如何在确认的情况下从剑道网格中删除一行,并将所选ID传递到Destroy方法中,c#,kendo-grid,C#,Kendo Grid,如何在确认并将所选ID传递到Destroy方法的情况下从剑道网格中删除一行?以下是我的cshtml代码: @(Html.Kendo().Grid<EmailTemplateEditor.Models.EmailTemplate>() .Name("EmailTemplates") .Columns(columns => { columns.Bound(c => c.ID).ClientTemplate("<a href
@(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))
)
)
当我运行这个程序时,我得到一个错误,说Model.ID为null。如果我不能以这种方式访问当前行的ID,我该怎么做?我真的不想为了使用“传输”风格的数据源而重构它,但是如果这是唯一的方法,请告诉我。以下是UI的外观:
谢谢将销毁命令更改为以下命令
.Destroy(update => update.Action("Delete", "Home"))
然后,您的控制器将:
public ActionResult Delete([DataSourceRequest] DataSourceRequest request, EmailTemplate myModel)
然后,您可以使用
myModel.ID
这是我尝试的第一件事,但该方法从未被调用。如果我删除EmailTemplate myModel输入参数,那么它会被调用,但随后我会丢失所需的输入。它应该可以工作。调试建议(IE)。打开开发者工具(F12),然后打开网络选项卡,启用网络流量捕获。您将能够看到您的请求/主页/删除,并打开它,查看您收到的错误。可能是404错误。我猜你已经正确安装了所有剑道库。它显示的状态是500,因为输入列表末尾的EmailTemplate参数不匹配。这表明在框架的服务器端初始化EmailTemplate对象时引发了异常。EmailTemplate是实体框架(域模型)自动生成的类吗?如果是,我建议您创建自己的视图模型,例如ViewModelEmailTemplate类,并且只使用基本数据类型。如果不是域模型,您可以在此处发布EmailTemplate类。很高兴看一看。
myModel.ID