why do i get [FromBody] POHeaderViewModel objPOHeaderViewModel NULL

19 Views Asked by At

this is my code in razor page .cshtml

function AddLine(btn) {
                                debugger;
                                var tbl = $('#tblPOLine');
                                var ItmName = $('#txtItmName').val();
                                var ItmId = $('#ItmId').val();
                                var Code = $('#txtItmCode').val();
                                var UOM = $('#txtUOM').val();
                                var UOMId = $('#UOMId').val();
                                var Rate = $('#txtRate').val();
                                var Qty = $('#txtQty').val();
                                var DiscPer = $('#txtDiscPer').val();
                                var Disc = $('#txtDisc').val();
                                var CGSTPer = $('#txtCGSTPer').val();
                                var SGSTPer = $('#txtSGSTPer').val();
                                var CGST = $('#txtCGST').val();
                                var SGST = $('#txtSGST').val();
                                var SubTotal = $('#txtSubTotal').val();
                                var DeliveryDt = $('#txtDeliveryDt').val();


                                if ((findDuplicateRow(ItmName, ItmId)) == true) {
                                    document.getElementById('error1').textContent = "*Duplicate Item Name*";
                                }
                                else {
                                    var ItmList = "<tr><td hidden>" + ItmId + "</td><td>" + ItmName + "</td><td>" + Code + "</td><td hidden>" + UOMId + "</td><td>" + UOM + "</td><td>"
                            + DeliveryDt + "</td><td align='right'>" + parseFloat(Qty).toFixed(2) + "</td><td align='right'>" + parseFloat(Rate).toFixed(2) + "</td><td hidden>" + parseFloat(DiscPer).toFixed(2)
                            + "</td><td align='right'>" + parseFloat(Disc).toFixed(2) + "</td><td hidden>" + parseFloat(CGSTPer).toFixed(2) + "</td><td align='right'>" + parseFloat(CGST).toFixed(2)
                            + "</td><td hidden>" + parseFloat(SGSTPer).toFixed(2) + "</td><td align='right'>" + parseFloat(SGST).toFixed(2) 
                                        +"</td><td align='right'>" + parseFloat(SubTotal).toFixed(2) +
                                        "</td><td><input type='button' id = 'btnRmv' name = 'Remove' value='Remove' class='btn btn-danger' onclick = 'RemoveItm(this)' style='height:28px;width:80px;padding:1px 3px;'></td></tr>";
                                    if (ItmId != null && ItmId != "") {
                                        tbl.append(ItmList);
                                        Total();
                                        AddDiscAndFreight();
                                        ClearItms();
                                    }
                                    else {
                                        alert('Please enter Item details');
                                    }
                                }
                            }
                            function RemoveItm(itmid) {
                                //alert($(itmid).closest('tr'));
                                $(itmid).closest('tr').remove();
                                CalcSubTotal()
                                Total();
                                AddDiscAndFreight();
                            }
function AddPO() {
                                debugger;
                                if ($('#CreatePONew').valid()) { //check if form is valid using model annotation
                                    //$('#UserForm').submit();

                                    var objPOHeaderViewModel = {};
                                    var ListofPOLineViewModel = new Array();
                                    objPOHeaderViewModel.PODate = $('#PODate').val();
                                    objPOHeaderViewModel.PONumber = $('#PONumber').val();
                                    //objPOHeaderViewModel.DeliveryDt = $('#DeliveryDt').val();
                                    objPOHeaderViewModel.ExchangeRate = parseFloat($('#ExchangeRate').val());
                                    objPOHeaderViewModel.VendorId = $('#VendorId').val();
                                    objPOHeaderViewModel.VendorName = $('#VendorName').val();
                                    objPOHeaderViewModel.VendorAddress = $('#VendorAddress').val();
                                    objPOHeaderViewModel.VendorAddressId = $('#VendorAddressId').val();
                                    objPOHeaderViewModel.EmailId = $('#EmailId').val();
                                    objPOHeaderViewModel.MobileNo = $('#MobileNo').val();
                                    objPOHeaderViewModel.GSTNo = $('#GSTNo').val();
                                    objPOHeaderViewModel.RefernceNo = $('#RefernceNo').val();
                                    objPOHeaderViewModel.PaymentTerms = $('#PaymentTerms').val();
                                    objPOHeaderViewModel.Remarks = $('#Remarks').val();
                                    objPOHeaderViewModel.Total = parseFloat($('#Total').val());

                                    $('#tblPOLine').find('tr:gt(0)').each(function () {
                                        var POLineViewModel = {};
                                        POLineViewModel.ItmId = $(this).find('td:eq(0)').text();
                                        POLineViewModel.Code = $(this).find('td:eq(2)').text();
                                        POLineViewModel.UOMId = $(this).find('td:eq(3)').text();
                                        POLineViewModel.DeliveryDt = $(this).find('td:eq(5)').text();
                                        POLineViewModel.Qty = parseFloat($(this).find('td:eq(6)').text());
                                        POLineViewModel.Rate = parseFloat($(this).find('td:eq(7)').text());
                                        POLineViewModel.DiscPer = parseFloat($(this).find('td:eq(8)').text());
                                        POLineViewModel.Disc = parseFloat($(this).find('td:eq(9)').text());
                                        POLineViewModel.CGSTPer = parseFloat($(this).find('td:eq(10)').text());
                                        POLineViewModel.CGST = parseFloat($(this).find('td:eq(11)').text());
                                        POLineViewModel.SGSTPer = parseFloat($(this).find('td:eq(12)').text());
                                        POLineViewModel.SGST = parseFloat($(this).find('td:eq(13)').text());
                                        POLineViewModel.SubTotal = parseFloat($(this).find('td:eq(14)').text());
                                        ListofPOLineViewModel.push(POLineViewModel);
                                    });

                                    objPOHeaderViewModel.Polines = ListofPOLineViewModel;
                                    debugger;
                                    $.ajax({
                                        async: true,
                                        type: 'POST',
                                        contentType: 'application/json',
                                        data: JSON.stringify(objPOHeaderViewModel),
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        url: '/PONew/SaveOrder',
                                        success: function (response) {
                                            if (response.success) {
                                                $('#VendorId').val('');
                                                $('#VendorName').val('');
                                                $('#VendorAddress').val('');
                                                $('#VendorAddressId').val('');
                                                $('#RefernceNo').val('');
                                                $('#PaymentTerms').val('');
                                                $('#EmailId').val('');
                                                $('#MobileNo').val('');
                                                $('#GSTNo').val('');
                                                $('#Remarks').val('');
                                                $('#SubTotal').val(0.00);
                                                $('#Disc').val(0.00);
                                                $('#SubTotal').val(0.00);
                                                $('#FreightCharge').val(0.00);
                                                $('#Total').val(0.00);
                                                $('#tblPOLine tbody').empty();

                                                $('#txtItmName').val('');
                                                $('#ItmId').val('');
                                                $('#txtItmCode').val('');
                                                $('#txtUOM').val('');
                                                $('#UOMId').val('');
                                                $('#txtRate').val(0.00);
                                                $('#txtQty').val('');
                                                $('#txtDiscPer').val(0.00);
                                                $('#txtDisc').val(0.00);
                                                $('#txtCGSTPer').val(0.00);
                                                $('#txtSGSTPer').val(0.00);
                                                $('#txtCGST').val(0.00);
                                                $('#txtSGST').val(0.00);
                                                $('#txtSubTotal').val(0.00);
                                                $('#txtDeliveryDt').val('');
                                                location.reload();
                                            }
                                            else {
                                                var msg = response.errorMessage;
                                                $('#errorDiv').text(msg);
                                            }
                                        },
                                        error: function (response) {
                                            alert('Errrr');
                                        }
                                    });
                                }
                                else {
                                    return false;
                                }
                            }


this is my controller function

public ActionResult SaveOrder([FromBody] POHeaderViewModel objPOHeaderViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    POHeaderNew model = new POHeaderNew();
                    model.PONumber = objPOHeaderViewModel.PONumber;
                    model.PODate = Convert.ToDateTime(objPOHeaderViewModel.PODate);
                    model.ExchangeRate = objPOHeaderViewModel.ExchangeRate;
                    model.VendorId = objPOHeaderViewModel.VendorId;
                    model.VendorAddressId = objPOHeaderViewModel.VendorAddressId;

why do i get null in parameter from ajax call

i tried above code but i get null in parameter

when post my method it gives my null object in return,however when i debugg code in inspect element ,object filled with values but it gives null in controller

0

There are 0 best solutions below