在控制器上找不到公共操作方法'xyz'

时间:2018-04-03 02:41:11

标签: c# asp.net-mvc kendo-grid

在我看来,我有Kendo Grid。我已经指定了HTTPPOST类型的读取,编辑和删除。但是当我尝试编辑或删除时,我得到一个错误:“在控制器'Nop.Plugin.Misc.CategoryWiseShipping.Controllers.ShippingChargeController'上找不到公共操作方法'UpdateDetails'。”用于更新操作,类似于另一个用于删除选项。

有趣的是它在我的本地计算机上工作正常但在发布到服务器时抛出错误

我在google上进行了广泛搜索,但无法找到原因。

这是控制器actionMethod

    [HttpPost]
    public ActionResult UpdateDetails(ShippingChargeModel shippingChargeModel)
    {
        if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            return AccessDeniedView();

        if (shippingChargeModel.SchoolEmail == null)
        {
            ErrorNotification(" Email can not be null !!", true);
            return RedirectToAction("AddShippingCharge", "ShippingCharge");
        }

        if (shippingChargeModel.SaleStartDate == null)
        {
            ErrorNotification(" Sale start date can not be null !!", true);
            return RedirectToAction("AddShippingCharge", "ShippingCharge");
        }

        if (shippingChargeModel.SaleEndDate == null)
        {
            ErrorNotification(" Sale end date can not be null !!", true);
            return RedirectToAction("AddShippingCharge", "ShippingCharge");
        }

        if (shippingChargeModel.SaleEndDate < shippingChargeModel.SaleStartDate)
        {
            ErrorNotification(" Sale start date should be less than sale end date!!", true);
            return RedirectToAction("AddShippingCharge", "ShippingCharge");
        }

        var modelFromDb = _catShippingService.GetRecord(shippingChargeModel.Id);

        modelFromDb.SaleEndDate = shippingChargeModel.SaleEndDate.Value.AddMinutes(330);
        modelFromDb.SaleStartDate = shippingChargeModel.SaleStartDate.Value.AddMinutes(330);
        modelFromDb.SchoolEmail = shippingChargeModel.SchoolEmail;
        modelFromDb.ShippingCharge = shippingChargeModel.ShippingCharge;
        modelFromDb.ModifyDate = DateTime.Now;

        _catShippingService.Update(modelFromDb);
        return new NullJsonResult();
    }

这是我的剑道网格:

function loadKendo() {
         var dataNew = {};
         $("#shippingCharge-grid").kendoGrid({
            dataSource: {
                type: "json",
                transport: {
                    read: {
                        url: "@Html.Raw(Url.Action("GetDetails", "ShippingCharge"))",
                        type: "POST",
                        dataType: "json",

                    },
                     update: {
                        url: "@Html.Raw(Url.Action("UpdateDetails", "ShippingCharge"))",
                        type: "POST",
                        dataType: "json",
                        //data: addAntiForgeryToken
                    },
                     destroy: {
                         url: "@Html.Raw(Url.Action("DeleteDetails", "ShippingCharge"))",
                        type: "POST",
                        dataType: "json",
                     }
                    ,
                    parameterMap: function (data, operation) {
                        if (operation === "update") {
                            dataNew.Id = data.Id;
                            dataNew.CategoryId = data.CategoryId;
                            dataNew.ShippingCharge = data.ShippingCharge;
                            dataNew.SaleStartDate = stringToTimestamp(data.SaleStartDate.toUTCString());
                            dataNew.SaleEndDate = stringToTimestamp(data.SaleEndDate.toUTCString());
                            dataNew.SchoolEmail = data.SchoolEmail;
                            return { ShippingChargeModel: dataNew };
                        }
                        return data;
                    }
                },
                schema: {
                    data: "Data",
                    total: "Total",
                    errors: "Errors",
                    model: {
                        id: "Id",
                        fields: {
                            //ProductId: { editable: false, type: "number" },
                            CategoryId: { editable: false, type: "string" },
                            CategoryName: { editable: false, type: "string" },
                            ShippingCharge: { editable: true, type: "number" },
                            SaleStartDate: { editable: true, type: "date", format: "{0:dd/MMM/yyyy HH:mm}"},
                            SaleEndDate: { editable: true, type: "date", format: "{0:dd/MMM/yyyy HH:mm}"},
                            SchoolEmail: { editable:true, type: "string" }
                        }
                    }
                },
                requestEnd: function (e) {
                    if (e.type == "update") {
                        this.read();
                    }

                    if (e.type == "cancel") {
                        this.cancelChanges();
                    }
                },
                error: function (e) {
                    display_kendoui_grid_error(e);
                    // Cancel the changes
                    this.cancelChanges();
                },
                serverPaging: true,
                serverFiltering: true,
                serverSorting: true
            },
            pageable: {
                refresh: true,
                numeric: false,
                previousNext: false,
                info: false,
                 pageSizes: [@(gridPageSizes)]
            },
            editable: {
                confirmation: "@T("Admin.Common.DeleteConfirmation")",
                mode:  "inline"
            },
            scrollable: false,
            columns: [
                {
                    field: "CategoryName",
                    title: "CategoryName",
                    width: 300
                },
            {
                field: "ShippingCharge",
                title: "Shipping Charge",
                width: 100,
                encoded: false
                }
                ,
            {
                field: "SchoolEmail",
                title: "Email",
                width: 200,
                encoded: false
            }
                ,
            {
                field: "SaleStartDate",
                title: "Sale Start Date",
                width: 200,
                encoded: false,
                type: "datetime",
                format: "{0:dd/MMM/yyyy HH:mm}",
                template: "#= kendo.toString(kendo.parseDate(SaleStartDate, 'yyyy-MM-dd'), 'dd/MMM/yyyy') #",
                editor: dateTimeEditor
            },
            {
                field: "SaleEndDate",
                title: "Sale End Date",
                width: 200,
                encoded: false,
                type: "datetime",
                format: "{0:dd/MMM/yyyy HH:mm}",
                template: "#= kendo.toString(kendo.parseDate(SaleEndDate, 'yyyy-MM-dd'), 'dd/MMM/yyyy') #",
                editor: dateTimeEditor

            }, {
            command: [
                {
                    name: "edit",
                    text: {
                        edit: "@T("Admin.Common.Edit")",
                        update: "@T("Admin.Common.Update")",
                        cancel: "@T("Admin.Common.Cancel")"
                    }
                }
                , {
                    name: "destroy",
                    text: "@T("Admin.Common.Delete")"
                }
            ],
            width: 200
        }
            ]
        });
    }

请帮帮我。任何形式的见解都会......

0 个答案:

没有答案