【发布时间】:2019-07-21 13:27:59
【问题描述】:
我的 javacript 看起来像这样:
namespace ContactPage {
$(() => {
//contact info
let $firstName = $('#first-name'), $lastName = $('#last-name'), $email = $('#email');
//form
let $form = $('#main-form');
$form.submit(() => {
let data = $form.serialize();
var post = $.post('/contact', data, function () {
console.log('posted');
});
post.done(function (data) {
console.log('done', data);
})
.fail(function (data) {
console.log('fail', data);
})
.always(function (data) {
console.log('always', data);
});
});
});
}
MVC .net C# 控制器成功接收数据(代码如下所示),但是,javascript 不等待响应,浏览器最终显示 Json。我错过了什么?
[HttpPost]
public ActionResult Index(ContactModel model)
{
var cl = seretContext.ContactLogs.Create();
cl.Email = model.email;
cl.Comment = model.message;
seretContext.Set<ContactLog>().Add(cl);
seretContext.SaveChanges();
return Json(new { redirectTo = "/" });
}
并且cshtml有一个提交按钮如下:
<div class="text-center">
<button id="orderForm" class="btn btn-success btn-lg" type="submit" >Send</button>
</div>
浏览器立即显示原始 Json...而不是接收 Json 以便对其进行处理。
浏览器显示 {"redirectTo":"/"}
【问题讨论】:
-
请添加一个minimal reproducible example 以显示实际问题(但我猜您不会阻止提交表单)。
-
好的,我已经添加了完整的打字稿文件和 cshtml - 打字稿包含来自@Nicolay 的以下建议
标签: jquery ajax post model-view-controller controller