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