我正在尝试使用UnitOfWork Repository模式在MVC asp.net应用程序中使用ajax方法调用来保存数据。每当我尝试在数据库中保存数据时,ajax就会抛出不可处理的实体错误代码422的异常。 我想知道问题的根本原因以及如何消除它。 FormDialog的代码如下:
$(document).ready(function () {
$(document).on("click", "#addMore", function () {
rowIndex++;
var data = $(".HiddenTemplate").clone().html();
$(".dynamicBlock").prepend(data);
$('.dynamicBlock').find('#ItemId').attr('id', 'ItemId' + rowIndex).select2().end().attr('rowNo', rowIndex);
$('.dynamicBlock').find('#QtyId').attr('id', 'QtyId' + rowIndex).attr('rowNo', rowIndex);
$('.dynamicBlock').find('#RateId').attr('id', 'RateId' + rowIndex).attr('rowNo', rowIndex);
$('.dynamicBlock').find('#AmountId').attr('id', 'AmountId' + rowIndex).attr('rowNo', rowIndex);
var i = 1;
$('[name="srNo"]').each(function () {
$(this).val(i);
i++;
});
});
后端保存数据的代码如下(控制器):
try {
int ? id = null;
Bill Bill;
if (BillFormViewModel.Id == 0) {
Bill = new Bill();
_BillService.CreateBill(Bill);
}
else {
id = BillFormViewModel.Id;
Bill = _BillService.GetBill((int)id);
_BillDetailService.DeleteRange(Bill.BillDetails);
}
Bill = (Bill)Mapper.Map(BillFormViewModel, Bill, typeof (BillFormViewModel), typeof (Bill));
BillValidator BillValidator = new BillValidator();
ValidationResult validationResult = BillValidator.Validate(Bill);
if (validationResult.IsValid) //check for any validation errors
{
if (id == null) {
_BillService.CreateBill(Bill);
_BillService.SaveBill();
}
else {
_BillService.Update(Bill);
_BillService.SaveBill();
}