Я установил предупреждение javascript, чтобы подтвердить, что мой form.serialize работает правильно, и это так. Проблема в том, что мое действие контроллера не связывает какие-либо данные из формы с моделью.
Javascript оповещение с переданными значениями формы
Первое значение в этом оповещении StartDate
со значением 02/25/2020
, но на скриншоте контроллер под ним не привязан к значению StartDate объекта dailyReport.
![alert](https://i.stack.imgur.com/CKL61.png)
Снимок экрана контроллера и переданного объекта
![VS screenshot](https://i.stack.imgur.com/PyUIf.png)
Ajax
$(function () {
$('#submit').on('click', function (evt) {
alert($('#reportForm').serialize());
evt.preventDefault();
//Ajax form post
$.ajax({
type: 'POST',
data: $('#reportForm').serialize(),
url: '@Url.Action("Daily","Reports")',
contentType: 'application/json; charset=utf-8',
success: function (data) {
if (data.success) {
alert("Data Success");
} else {
console.log(data);
//Toggle the error modal and display error messages
$('#errorsModal').modal('toggle');
//Add <br> tags when there is a linebreak in the string. This will add the line breaks into the HTML.
$('#errorsModal .modal-body p').html(data.message.replace(/(?:\r\n|\r|\n)/g, '<br>'));
}
}
});
});
});
Контроллер
[HttpPost]
public IActionResult Daily(Daily dailyReport)
{
var dr = new ReportDaily();
var rc = new ReportDailyCriteria();
dr.Preview(rc, IntPtr.Zero, out Notification notification);
if (notification.HasErrors)
{
return Json(new
{
success = false,
message = notification.GetConcatenatedErrorMessage(Environment.NewLine + Environment.NewLine)
});
}
return Json(new { success = true });
}