我的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”:“ /”}
答案 0 :(得分:0)
您可以尝试这样的方法来捕获所有可能的结果吗?
var post = $.post('/contact', 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);
});
答案 1 :(得分:0)
结果是一个非常愚蠢的错误-我很抱歉-表单的ID拼写错误,因此javascript甚至没有得到该表单。