Кнопка обновления и удаления не работает на KendoUI Grid с Javascript - PullRequest
0 голосов
/ 25 октября 2019

В настоящее время я работаю над ползунком, у которого сама таблица ползунков отличается от таблицы изображений ползунков, где первичный ключ таблицы ползунков - это внешний ключ в таблице изображений ползунков. Идея состоит в том, чтобы создать слайдер, сохранить и загрузить изображения слайдера (1 или более), чтобы при загрузке изображений и сохранении их обновлялась сетка Кендоуи с изображением. Теперь проблема заключается в удалении и обновлении некоторых столбцов, таких как (заголовок,Url) изображения из этой сетки кэндуи. Это мой код просмотра:

  $(document).ready(function() {
                    $("#productpictures-grid").kendoGrid({
                        dataSource: {
                            type: "json",
                            transport: {
                                read: {
                                    url: "@Html.Raw(Url.Action("GetPromoImagesList", "PromoSlider", new {PromoSliderId = Model.PromoSliderId }))",
                                    type: "POST",
                                    dataType: "json",
                                    data: addAntiForgeryToken
                                },
                                update: {
                                    url: "@Html.Raw(Url.Action("UpdatePromoImage", "PromoSlider"))",
                                    type: "POST",
                                    dataType: "json",
                                    contentType: "application/json; charset=utf-8",
                                    data: addAntiForgeryToken
                                },
                                destroy: {
                                    url: "@Html.Raw(Url.Action("DeletePromoImage", "PromoSlider"))",
                                    type: "POST",
                                    dataType: "json",
                                    contentType: "application/json; charset=utf-8",
                                    data: addAntiForgeryToken
                                },

                              parameterMap: function (options, operation) {
                                  if (operation !== "read" && options.models) {
                                      return { models: kendo.stringify(options.models) };
                                  }
                                  else if (operation !== "update" && options.models) {
                                      return { models: kendo.stringify(options.models) };
                                  }
                                  else if (operation !== "destroy" && options.models) {
                                      return { models: kendo.stringify(options.models) };
                                  }
                            },
                            schema: {
                                data: "Data",
                                total: "Total",
                                errors: "Errors",
                                model: {
                                    id: "PromoImageId",  

Это мой контроллер:

  [HttpPost]
    public ActionResult UpdatePromoImage(PromoImageRecord imageUpdate)
    {
       PromoImageRecord  image = _imageRepo.GetById(imageUpdate.PromoImageId);

        image.DisplayOrder = imageUpdate.DisplayOrder;
        image.Url = imageUpdate.Url;
        image.Caption = imageUpdate.Caption;

        _imageRepo.Update(image);

        return new NullJsonResult();
    }

    [HttpPost]
    public ActionResult DeletePromoImage(int PromoImageId)
    {
        PromoImageRecord image = _imageRepo.GetById(PromoImageId);
        _imageRepo.Delete(image);

        return new NullJsonResult();
    }

При отладке я вижу, что первичный ключ таблицы изображений ползунков равен 0, а первичный ключтаблицы ползунков, которая является внешним ключом в таблице изображений ползунков, равна нулю. по сути, он не может идентифицировать конкретную строку в сетке, на которой нажата кнопка. пожалуйста, помогите!

...