有人可以向我解释一下:
我有一个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错误。
答案 0 :(得分:2)
然后我收到500错误。
尝试逐步执行控制器操作中的代码,看看它是否会抛出异常以及出于什么原因。甚至更好:使用诸如FireBug之类的javascript调试工具来跟踪实际的AJAX请求,查看请求和服务器的响应。这应该可以告诉您出现了什么问题,以便您收到500错误。
此外,您似乎还没有分配要发送到服务器的InvoiceLineId
对象的invoiceLine
属性。
此外,您似乎正在为符合条件的每个下拉列表发送多个AJAX请求,这显然非常无效。我建议你将所有必要的数据提取到一个对象中,或者在你的情况下获取一个对象数组并向服务器发送一个AJAX请求。您当然必须修改控制器操作以使用您要发送的新视图模型。