值无法从 kendo 网格传递到实体 class?

Values cannot pass from kendo grid to Entity class?

这里是我的控制器 api class DefCompany 的清晰代码,它的值在从 kendo 网格发布数据时始终为空,这就是为什么不向数据库输入任何内容?

   [HttpPost]
    public void SaveDefCompny()
    {
   var result = new List<DefCompany>();
        using (var data = new RPDBEntities())
        {
            DefCompanyDTO productViewModel = new DefCompanyDTO();

                var product = new DefCompany
                {
  //same problem of all entites  getting no value from grid

                 Id = productViewModel.Id, // getting no value from grid
                    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();
        }

    }

这是我的视图模型代码

   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", 
            dataType: "json"
        },
        update: {
            url: "/api/Companies/SaveDefCompny", // here you need correct api url
            dataType: "json"
        },
        destroy: {
            url: "/api/Companies/Delete", // here you need correct api url
            dataType: "json"
        },
        parameterMap: function (data, operation) {
            if (operation !== "read" && data) {
                 return  kendo.stringify(data) ;


            }
        }
    }

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


}

我应该如何将我的内联 kendo 网格值传递给我的控制器,以便它保存在数据库中?

检查 Kendo 文档并查看 SaveDefCompny 应该期望什么样的参数。然后您应该能够使用这些参数读取您需要的任何内容。

url: "/api/Companies/SaveDefCompny", dataType: "json"

这很可能是以 json 格式向您的控制器方法发送所需的数据。 同样:您的答案在 Kendo 文档中。

编辑: 参见 this and this

来自他们的例子:

public ActionResult Products_Create([DataSourceRequest]DataSourceRequest request, ProductViewModel product)
{
    if (ModelState.IsValid)
    {
        using (var northwind = new NorthwindEntities())
        {
            // Create a new Product entity and set its properties from the posted ProductViewModel
            var entity = new Product
            {
                ProductName = product.ProductName,
                UnitsInStock = product.UnitsInStock
            };
            // Add the entity
            northwind.Products.Add(entity);
            // Insert the entity in the database
            northwind.SaveChanges();
            // Get the ProductID generated by the database
            product.ProductID = entity.ProductID;
        }
    }
    // Return the inserted product. The grid needs the generated ProductID. Also return any validation errors.
    return Json(new[] { product }.ToDataSourceResult(request, ModelState));
}