Mvvm 剑道UI网格创建数据,但未发送到控制器

Mvvm 剑道UI网格创建数据,但未发送到控制器,mvvm,kendo-grid,Mvvm,Kendo Grid,使用MVVM方法将数据获取到控制器时遇到困难,如中所示 我可以在parameterMap函数中看到数据在options.models中,但当我在控制器中查找数据时,FAC_FuelReceipts为空。我可以手动给我们一个ajax调用,但我想先让它“开箱即用”。我做错了什么 网格: $("#grid").kendoGrid({ height: 430, columns: [ { field: "FuelReceiptID" }, { field:

使用MVVM方法将数据获取到控制器时遇到困难,如中所示 我可以在parameterMap函数中看到数据在options.models中,但当我在控制器中查找数据时,FAC_FuelReceipts为空。我可以手动给我们一个ajax调用,但我想先让它“开箱即用”。我做错了什么

网格:

$("#grid").kendoGrid({
    height: 430,
    columns: [
        { field: "FuelReceiptID" },
        { field: "ReceiptDate", title: "Receipt Date", width: 110, format: "{0:MM/dd/yyyy}" },
        { field: "FuelType", title: "Fuel Type", width: 110, editor: fuelTypeDropDownEditor },
        { field: "Qty", width: 110 },
        { field: "ReceivedBy", width: 110 }

    ],
    editable: true,
    pageable: true,
    sortable: true,
    filterable: true,
    navigatable: true,
    toolbar: ["create", "save", "cancel"],
    dataSource: viewModel.receipts
});
var viewModel;
$(function () {  //On Ready
viewModel = kendo.observable({
    receipts: new kendo.data.DataSource({

        schema: {
            model: {
                id: "FuelReceiptID",
                fields: {
                    FuelReceiptID: { editable: false, nullable: true },
                    ReceiptDate: {  type: "date",    validation: { required: true } },
                    FuelType: { type: "string", defaultValue:"Diesel" },
                    Qty: { type: "number", validation: { required: true } },
                    ReceivedBy: { type: "string" }
               }
            }
        },
        batch:true,
        transport: {
            read: {
                cache:false,
                url: "/Fuels/GetFuelReceipts",
                dataType: "json"

            },
            create: {
                url: "/Fuels/Create",
                dataType: "json",
                type: "POST"
            },

            parameterMap:function(options,operation){

                if (operation == "read") {
                    return{

                        SiteID: SiteID,
                        ReceiptMonth: ReceiptMonth,
                        ReceiptYear: ReceiptYear
                    }
                }

                if (operation !== "read" && options.models) {
                    return { FAC_FuelReceipts: kendo.stringify(options.models) };
                   }
            }  //parameterMap fuction
        } //transport
    })
});
 [HttpPost]
    public JsonResult Create(IEnumerable<FAC_FuelReceipts> FAC_FuelReceipts) //**empty here**
    {
       //Do something with data here
       return Json(FAC_FuelReceipts, JsonRequestBehavior.AllowGet);
    }
视图模型代码:

$("#grid").kendoGrid({
    height: 430,
    columns: [
        { field: "FuelReceiptID" },
        { field: "ReceiptDate", title: "Receipt Date", width: 110, format: "{0:MM/dd/yyyy}" },
        { field: "FuelType", title: "Fuel Type", width: 110, editor: fuelTypeDropDownEditor },
        { field: "Qty", width: 110 },
        { field: "ReceivedBy", width: 110 }

    ],
    editable: true,
    pageable: true,
    sortable: true,
    filterable: true,
    navigatable: true,
    toolbar: ["create", "save", "cancel"],
    dataSource: viewModel.receipts
});
var viewModel;
$(function () {  //On Ready
viewModel = kendo.observable({
    receipts: new kendo.data.DataSource({

        schema: {
            model: {
                id: "FuelReceiptID",
                fields: {
                    FuelReceiptID: { editable: false, nullable: true },
                    ReceiptDate: {  type: "date",    validation: { required: true } },
                    FuelType: { type: "string", defaultValue:"Diesel" },
                    Qty: { type: "number", validation: { required: true } },
                    ReceivedBy: { type: "string" }
               }
            }
        },
        batch:true,
        transport: {
            read: {
                cache:false,
                url: "/Fuels/GetFuelReceipts",
                dataType: "json"

            },
            create: {
                url: "/Fuels/Create",
                dataType: "json",
                type: "POST"
            },

            parameterMap:function(options,operation){

                if (operation == "read") {
                    return{

                        SiteID: SiteID,
                        ReceiptMonth: ReceiptMonth,
                        ReceiptYear: ReceiptYear
                    }
                }

                if (operation !== "read" && options.models) {
                    return { FAC_FuelReceipts: kendo.stringify(options.models) };
                   }
            }  //parameterMap fuction
        } //transport
    })
});
 [HttpPost]
    public JsonResult Create(IEnumerable<FAC_FuelReceipts> FAC_FuelReceipts) //**empty here**
    {
       //Do something with data here
       return Json(FAC_FuelReceipts, JsonRequestBehavior.AllowGet);
    }
控制器代码:

$("#grid").kendoGrid({
    height: 430,
    columns: [
        { field: "FuelReceiptID" },
        { field: "ReceiptDate", title: "Receipt Date", width: 110, format: "{0:MM/dd/yyyy}" },
        { field: "FuelType", title: "Fuel Type", width: 110, editor: fuelTypeDropDownEditor },
        { field: "Qty", width: 110 },
        { field: "ReceivedBy", width: 110 }

    ],
    editable: true,
    pageable: true,
    sortable: true,
    filterable: true,
    navigatable: true,
    toolbar: ["create", "save", "cancel"],
    dataSource: viewModel.receipts
});
var viewModel;
$(function () {  //On Ready
viewModel = kendo.observable({
    receipts: new kendo.data.DataSource({

        schema: {
            model: {
                id: "FuelReceiptID",
                fields: {
                    FuelReceiptID: { editable: false, nullable: true },
                    ReceiptDate: {  type: "date",    validation: { required: true } },
                    FuelType: { type: "string", defaultValue:"Diesel" },
                    Qty: { type: "number", validation: { required: true } },
                    ReceivedBy: { type: "string" }
               }
            }
        },
        batch:true,
        transport: {
            read: {
                cache:false,
                url: "/Fuels/GetFuelReceipts",
                dataType: "json"

            },
            create: {
                url: "/Fuels/Create",
                dataType: "json",
                type: "POST"
            },

            parameterMap:function(options,operation){

                if (operation == "read") {
                    return{

                        SiteID: SiteID,
                        ReceiptMonth: ReceiptMonth,
                        ReceiptYear: ReceiptYear
                    }
                }

                if (operation !== "read" && options.models) {
                    return { FAC_FuelReceipts: kendo.stringify(options.models) };
                   }
            }  //parameterMap fuction
        } //transport
    })
});
 [HttpPost]
    public JsonResult Create(IEnumerable<FAC_FuelReceipts> FAC_FuelReceipts) //**empty here**
    {
       //Do something with data here
       return Json(FAC_FuelReceipts, JsonRequestBehavior.AllowGet);
    }
[HttpPost]
public JsonResult Create(IEnumerable FAC_fuelreceives)//**此处为空**
{
//在这里处理数据
返回Json(FAC_fuelreceives,JsonRequestBehavior.AllowGet);
}

使用字符串而不是IEnumerable,因为您的参数数据是字符串格式的。 一旦获得字符串格式的数据,就将其反序列化到对象中

[HttpPost]
public JsonResult Create(string FAC_FuelReceipts)
        {

            IList<FAC_FuelReceipts> Items= new JavaScriptSerializer().Deserialize<IList<FAC_FuelReceipts>>(FAC_FuelReceipts);

            /**your code*/

           return Json(FAC_FuelReceipts);
        }
[HttpPost]
公共JsonResult创建(字符串FAC_FuelReceipts)
{
IList Items=new JavaScriptSerializer()。反序列化(FAC_FuelReceives);
/**你的代码*/
返回Json(FAC_FuelReceipts);
}