Jquery Ajax Posting with ASP Core JsonResult



我想在Asp Core中发布一种使用Jquery Ajax的数据形式。

AJAX代码

if (contactForm.valid() == true) {
var formData = new FormData();
formData.append("Name", contactForm.find("input[name='Name']").val());
formData.append("Email", contactForm.find("input[name='Email']").val());
formData.append("Subject", contactForm.find("input[name='Subject']").val());
formData.append("Message", contactForm.find("textarea[name='Message']").val());
$.ajax({
url: "/home/contact",
method: 'POST',
data: formData,
processData: false,
}).done(function (data) {
if (data == "success") {
setTimeout(function () { $("#footer_contact__form .alert-success").removeClass("d-none") }, 500);
}
else {
setTimeout(function () { $("#footer_contact__form .alert-danger").removeClass("d-none") }, 500);
}
}).fail(function () {
});
}

控制器

[HttpPost]
public JsonResult Contact(Contact entity)
{
if (ModelState.IsValid)
{
entity.Date = DateTime.Now;
_uow.Contact.Add(entity);
return Json("ok");
}
else
{
return Json("failed");
}
}
当我这样做时,我得到一个错误。我如何顺利发布一个模型与Asp核心和Ajax?谢谢你。

您应该将contentType选项设置为false。

$.ajax({
url: "/home/contact",
method: 'POST',
data: formData,
processData: false,
contentType:false,
})

要了解更多细节,请参阅此线程。