首页 > 解决方案 > C# 代码中的参数 null 但在 AJAX 调用中设置

问题描述

我正在使用 C#、.NET Framework 4.7 和 jQuery 1.11.2 开发一个 ASP.NET MVC 5 应用程序。

这个javascript代码:

function RequestCodes(button, poId) {
    var URL = '/ProductionOrder/RequestCodeForIncompleteOrder';
    //button.attr("disabled", "disabled");

    $('#ok').hide();
    $('#fail').hide();
    $('#cargando').show();

    $.ajax({
        url: URL,
        type: "PUT",
        dataType: "HTML",
        data: { productionOrderId: poId },
        contentType: "json",
        success: function () {
            $('#cargando').hide();
            $('#ok').show();

            $("#ok").fadeOut("slow", function () {
                $('#ok').hide();
            });
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(textStatus, errorThrown);
            $('#cargando').hide();
            $('#fail').show();

            $("#fail").fadeOut("slow", function () {
                $('#fail').hide();
                //button.removeAttr("disabled");
            });
        }
    });
}

引发此错误:

参数字典包含“TRZF.Web.API.Controllers.ProductionOrderController”中方法“System.Web.Mvc.ActionResult RequestCodeForIncompleteOrder(Int32)”的不可为空类型“System.Int32”的参数“productionOrderId”的空条目。可选参数必须是引用类型、可为空的类型或声明为可选参数。参数名称:参数。

当我调用该方法时: public ActionResult RequestCodeForIncompleteOrder(int productionOrderId)

问题在于 javascript 代码中的参数名称,但我不知道为什么,因为它与 C# 代码中的名称相同。

我该如何解决这个错误?

标签: c#jqueryajaxasp.net-mvc

解决方案


这是解决方案:

您在下一行有语法错误。我已经解决了这个问题。

data: "{'productionOrderId':'" + poId + "'}",

推荐阅读