.net Core HttpPost method ajax call

I have a view that adds an Unordered list and list items to it at runtime, then I loop through to get the entered values, push the info to an object, and do the ajax call to my method. I have tried everything I’ve found in this forum but I always get an empty parameter on the controller, the console.log(assetWeighJsonDetail) shows what was entered, so I’m making sure I’m not passing and empty object -see image-

// Client side script:

var assetSerialNumber = ""; var weight = 0; var assetWeighJsonDetail = [];  $(".ul-asset-weigh").each(function () {      var classNameSelected = this.id;      $("." + classNameSelected).each(function () {         assetSerialNumber = $(this).attr('id');         weight = $(this).val();         assetWeighJsonDetail.push({             OriginID: classNameSelected,             AssetSerialNumber: assetSerialNumber,             Weight: weight         });     }); });  console.log(assetWeighJsonDetail);  $.ajax({     url: "/AssetWeigh/SaveAssetWeigh",     data: JSON.stringify({assetWeighJsonDetail}),     type: "POST",     dataType: "json",     contentType: "application/json; charset=utf-8",     traditional: true,     success: function (response) {         if (response) {             alert("success");         }         else {             alert("fail");         }     },     error: function (exception) {     } }); 

// Console: enter image description here

// Controller Method:

[HttpPost] public ActionResult SaveAssetWeigh(List<AssetWeighJsonDetail> assetWeighJsonDetail)       {    bool success = false;     success = assetWeighJsonDetail != null && assetWeighJsonDetail.Count > 0;     return Json(success); } 

// Method’s class List parameter:

public class AssetWeighJsonDetail {     public int OriginID { get; set; }     public string AssetSerialNumber { get; set; }     public decimal Weight { get; set; } } 
Add Comment
1 Answer(s)

You should try with $.post I have faced the same issue if using $.ajax and was not working and just switching to $.post made it work.

$.post( "/AssetWeigh/SaveAssetWeigh", parameters, function() {   alert( "success" ); })   .done(function() {  alert( "second success" );   })   .fail(function() {  alert( "error" ); })  .always(function() {  alert( "finished" );  }); 

I’m on my phone and can’t type all of it, I’ll try to update later from my computer

Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.