MVC jquery发布500错误

时间:2012-01-17 22:15:41

标签: jquery asp.net-mvc

有人可以向我解释一下:

我有一个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);
                }
            });
        });
    });

一切正常,直到帖子发生。然后我得到500错误。

1 个答案:

答案 0 :(得分:2)

  

然后我收到500错误。

尝试逐步执行控制器操作中的代码,看看它是否会抛出异常以及出于什么原因。甚至更好:使用诸如FireBug之类的javascript调试工具来跟踪实际的AJAX请求,查看请求和服务器的响应。这应该可以告诉您出现了什么问题,以便您收到500错误。

此外,您似乎还没有分配要发送到服务器的InvoiceLineId对象的invoiceLine属性。

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