错误422不可处理的实体Ajax错误

时间:2018-01-19 10:18:24

标签: c# ajax asp.net-mvc repository-pattern

我正在尝试使用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();
        }

0 个答案:

没有答案