Как удалить строку из сетки Kendo с подтверждением и передачей выбранного идентификатора в метод Destroy - PullRequest
0 голосов
/ 30 мая 2018

Как удалить строку из таблицы Kendo с подтверждением и передачей выбранного идентификатора в метод 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 равен нулю.Если я не могу получить доступ к идентификатору текущей строки таким образом, как я могу это сделать?Я бы действительно хотел избежать рефакторинга, чтобы использовать «транспортный» стиль источника данных, но если это единственный способ сделать это, пожалуйста, дайте мне знать.Вот как выглядит пользовательский интерфейс:

UI screenshot

Спасибо

1 Ответ

0 голосов
/ 30 мая 2018

Измените свою команду Destroy на следующую.

.Destroy(update => update.Action("Delete", "Home"))

Затем ваш контроллер:

public ActionResult Delete([DataSourceRequest] DataSourceRequest request, EmailTemplate myModel)

Затем вы можете получить доступ к идентификатору, используя

myModel.ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...