A bit late for the party, but maybe it will help someone.
For me, on ASP.NET MVC 5 this work wonderfully:
Client jQuery side
let data1 = 'some text';
let data2 = 'some other text';
$.post('ControllerName/MethodName', { field1: data1, field2: data2 },
function(response) {
// Do something here with the data return from the controller
}
});
field1 and field2 needed to be the exact same name written in your method fields.
It's best to user JsonResult as the return type from your controller's method and parse it with Json() method.
Controller's method example
[HttpPost]
public JsonResult Method(string field1, string field2)
{
// Do something here with the data sent from the jQuery client side
ClassExample example = new();
return Json(example);
}