Вам просто нужно удалить эту строку
contentType: 'application/json; charset=utf-8'
Причина в том, что JQuery преобразует объект, переданный как data
параметр в формат key1=value1&key2=value2&...
по умолчанию, который, по-видимому, не является допустимым json.Таким образом, вам не нужно указывать application/json
тип контента, и ASP.NET Core автоматически проанализирует эти данные должным образом.
Но если вы хотите, чтобы запрос работал с json
типом контента, вам нужно сделатьследующий
JavaScript
var image = document.getElementById("canvas").toDataURL("image/png");
image = image.replace('data:image/png;base64,', '');
var data = JSON.stringify({ imageData: image }); //serializing object to json
$.ajax({
type: 'POST',
url: '@Url.Action("Add", "Home")',
data: data, //passing json string
ajaxasync: true,
contentType: 'application/json',
dataType: 'json',
success: function (msg) {
}
});
C #
public class Model
{
public string ImageData { get; set; }
}
[HttpPost]
public IActionResult Add([FromBody]Model model) { //..