0
我查看了其他相同问题的问题。我尝试了所有的建议,但它似乎并没有工作。 我正在使用MVC4.I调用表单提交使用post方法在jQuery中的操作方法。但是,当控制器retruns JSON,它加载了新的一页像下面从控制器返回的JSON对象在新屏幕中呈现
{"ok":true,"message":"success"}
,而不是返回的地方,我希望它的地步。
这是我的cshtml页面。 (只是开始形式和按钮)
@using (Html.BeginForm("SendMail", "Home", FormMethod.Post, new { name = "HomePage", id = "HomePage" }))
{
<input id="BtnSend" type="submit" value="SEND MAIL" >
}
这是我的jQuery脚本来做ajax后。
$('#HomePage').submit(function() {
$.ajax({
type: this.method,
url: this.action,
data: $(this).serialize(),
dataType: 'html',
success: function (returndata) {
alert(returndata.Data);
}
});
});
根据另一篇文章的建议,我试了这个。
$('#HomePage').submit(function() {
var form = $($("form")[0]);
form.submit(function() {
$.post(form.attr("action"), $(this).serialize(), function (result, status) {
alert(result.Success);
});
}, "json");
});
这也没有帮助。 这里是我的控制器的操作方法(只需签名和return语句去掉其他逻辑)
[HttpPost]
public JsonResult SendMail()
{
TryUpdateModel(EmailHomeViewModel);
// i have removed rest of the logic here
return Json(new { ok = true, message = "success" }, "text/plain", JsonRequestBehavior.AllowGet);
}
我核实,我在我的网页添加unobstrsive的Ajax库。我在同一页面上有其他ajax调用控制器。他们工作正常。所以唯一不同的是在这里我正在做一个表单提交。有人可以建议,如果我在这里失去一些东西?谢谢你的帮助。
非常感谢你@geedubb。它停止默认提交行为后工作 – Oogway
如果有帮助,请标记为答案。谢谢 – geedubb