MVC jquery post 500错误

MVC jquery post 500错误,jquery,asp.net-mvc,Jquery,Asp.net Mvc,有人能给我解释一下吗: 我有一个MVC方法,我想在jquery中发布一些日期,如下所示: public bool UpdateOfficeUser(InvoiceLine invoiceLineUpdates) { var invoiceLine = _unitOfWork.InvoiceLineRepository.Get(invoiceLineUpdates.InvoiceLineId); ... r

有人能给我解释一下吗:

我有一个MVC方法,我想在jquery中发布一些日期,如下所示:

public bool UpdateOfficeUser(InvoiceLine invoiceLineUpdates)
        {
            var invoiceLine = _unitOfWork.InvoiceLineRepository.Get(invoiceLineUpdates.InvoiceLineId);

            ...

            return true;
        }
更改dropdownofficeapprover类的下拉列表时调用:

//Office approver changed
    $(".dropdownofficeapprover").change(function () {
        var invoiceLineId = $(this).attr("invoiceLineId");

        $(".dropdownofficeapprover[invoicelineid='" + invoiceLineId + "'] option:selected").each(function () {
            var invoiceLine = {
                OfficeUserId: 7
            };
            alert(invoiceLine.InvoiceLineId);
            alert(invoiceLine.OfficeUserId);

            $.post('/Invoice/UpdateOfficeUser', invoiceLine, function (data) {

                if (data == 'False') {

                    alert("You must have at least two different approvers");
                    location.replace(window.location.pathname);
                }
            });
        });
    });
在post出现之前,一切正常。然后我得到一个500的错误

然后我得到一个500的错误

尝试单步执行控制器操作中的代码,看看它是否引发异常以及原因。或者更好:使用诸如FireBug之类的javascript调试工具来跟踪实际的AJAX请求,查看请求和来自服务器的响应。这应该给你指示出什么地方出了问题,所以你得到了这个500错误

此外,您似乎从未分配要发送到服务器的
invoiceLine
对象的
InvoiceLineId
属性


此外,您似乎正在为每个符合您的标准的dropdownlist发送多个AJAX请求,这显然是非常低效的。我建议您将所有必要的数据提取到一个对象中,或者在您的情况下提取一个对象数组,并向服务器发送一个AJAX请求。当然,您必须修改控制器操作,才能使用您将要发送的新视图模型。

我在MVC方法的条目上有一个断点,但它从未到达那里。Firebug显示了以下内容。发布500内部服务器错误502ms jquery….min.js(第4行)“NetworkError:500内部服务器错误-”@AnonyMouse,您在该请求的响应选项卡中看到了什么?服务器的实际响应是什么?谢谢您的帮助。响应显示InvoiceLine有一个属性,该属性导致空引用异常。我对firebug不太熟悉,所以我不完全知道你可以检查。谢谢你给我指出了正确的方向,“发票行”是什么样子的。检查以确保在$.post中提供此类的所有属性@使用javascript时,FireBug非常有用。