ASP.NET Core 8.0 MVC Ajax, передача нуля в контроллерC#

Место общения программистов C#
Anonymous
ASP.NET Core 8.0 MVC Ajax, передача нуля в контроллер

Сообщение Anonymous »

Я пытаюсь отправить данные в метод контроллера, чтобы добавить элемент в репозиторий.
Я делаю это со страницы HTML (razor), используя AJAX jQuery.
Форма сериализует данные и может читать элементы. Однако, поскольку эти данные отправляются в метод, аргумент, передаваемый в метод, имеет значение null.
Я просмотрел здесь несколько сообщений на stackoverflow и в Интернете.
Изначально у меня была функция контроллера, возвращающая результат IActionResult и Action. Возвращаем View(); однако аргумент по-прежнему был нулевым.
Я пытался сделать так, чтобы аргументом был сам объект, который (книга) таков и есть модель. Но безрезультатно.
Я явно что-то упускаю.
Заранее спасибо.
.cshtml / jQuery:
@model Library.Models.Book

@{
ViewData["Title"] = "BookAddView";
}

BookAddView

Book















@Html.DisplayNameFor(model => model.AvailabilityStatus)


Submit






Back to List


$('#btn_SubmitBook').click(
function () {

var data = $("#frm_newBook").serialize();

$.ajax({
url: '@Url.Action("BookAdd", "Library")',
type: 'POST',
dataType: 'json',
content: "application/json; charset=utf-8",
data: data
});
}
);


Контроллер C#:
// POST : Book/Create and AddBook
[HttpPost]
public JsonResult BookAdd(string jsonInput)
{
if (String.IsNullOrEmpty(jsonInput))
{
return Json(0);
};

Book book = JsonConvert.DeserializeObject(jsonInput);

_bookRepository.AddBook(book);
return Json(1);
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... controller

Вернуться в «C#»