值不能从剑道网格传递到实体类

本文关键字:实体 网格 不能 | 更新日期: 2023-09-27 17:50:35

这是我的控制器api类defcompany的c sharp代码,其值始终为空,同时从剑道网格发布数据,为什么不输入任何东西到数据库?

   [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文档,看看SaveDefCompny应该期望什么样的参数。然后,您应该能够使用这些参数读取您需要的任何内容。

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

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

编辑:看这个和这个

从他们的例子:

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));
}