Как разместить данные, используя mvvm kendo grid и post api controller not Calling?

Я хочу отправить данные из сетки кендо в базу данных sql, вот мой код модели представления javascript:

  document.onreadystatechange = function () {
var viewModel = kendo.observable({

    products: new kendo.data.DataSource({

    schema: {
       //data:"Data",
        total: "Count",

        model: {
            Id: "Id",
            fields: {
                Id: { editable: true, type: "int" },
                ShortName: { editable:true, type: "string" },
                FullName: { editable: true, type: "string" },
                ContactPerson: { editable: true, type: "string" },
                CurrentCurrencyCode: { editable: true, type: "int" },
                Adress1: { editable: true, type: "string" },
                CompanyState: { editable: true, type: "string" },

                CompanyCity: { editable: true, type: "string" },
                CompanyCountry: { editable: true, type: "string" },
                ZipPostCode: { editable: true, type: "string" },
                TelArea: { editable: true, type: "string" }

            }
        }
    },
    batch: true,

    transport: {
        read: {
            url: "/api/Companies/GetAllCompanies",
            dataType: "json"
        },
        create:{

            url: "/api/Companies/SaveDefCompny", // here is a correct api url, which i want to call
            dataType: "json"
        },

        destroy: {
            url: "/api/Companies/Delete", 
            dataType: "json"
        },
        parameterMap: function (data, operation) {
            if (operation !== "read" && data) {
                return  kendo.stringify(data) ;
            }
        }
    }

})
});
kendo.bind(document.getElementById("example"), viewModel);


}

Вот мой код контроллера для отправки данных в базу данных, но он не вызывается нажатием кнопки "Создать" или "Обновить", в чем проблема с моей сеткой или вызовом контроллера?

    [HttpPost]
    public void SaveDefCompny(IEnumerable<DefCompanyDTO> DfCmpny1)
    {

        var result = new List<DefCompany>();
        using (var data = new RPDBEntities())
        {
            foreach (var productViewModel in DfCmpny1)
              {
                var product = new DefCompany
                {
                  Id = productViewModel.Id,
                    CurrentCurrencyCode = productViewModel.CurrentCurrencyCode,
                    ShortName= productViewModel.ShortName,
                    FullName= productViewModel.FullName,
                    ContactPerson= productViewModel.ContactPerson,
                    Address1= productViewModel.Address1,
                    CompanyCity= productViewModel.CompanyCity,
                    CompanyState= productViewModel.CompanyState,
                   CompanyCountry= productViewModel.CompanyCountry,
                   ZipPostCode= productViewModel.ZipPostCode,
                   TelArea= productViewModel.TelArea

                };
               result.Add(product);
               data.DefCompanies.Add(product);
          };
             data.SaveChanges();
        }

    }

URL-адрес правильный, но он не вызывается, даже если курсор отладки не переходит на URL-адрес, а сетка считывает все значения и отображает их.

1 ответ

Как вы собираетесь размещать данные type: "POST" отсутствует в методе создания.

А также проверьте размещение data.models вместо data

Другие вопросы по тегам