有人可以告诉我是什么原因导致 $。ajax'POST'请求导致完整的回复后(整页刷新)?
我在 ASP.NET MVC 上下文中使用$ .ajax'POST',其中视图通过$ .ajax调用控制器方法(返回JSON结果) POST'请求。
代码如下。
// View.
<button id="save" onclick="saveClick()" />
// View.
<script type="text/javascript">
function saveClick() {
if (!$("form").valid()) {
return false;
}
$.ajax({
url: '@Url.Action(@MVC.Ticket.ActionNames.SaveTicket, @MVC.Ticket.Name)'
type: 'POST',
data: JSON.stringify(getJsonTicket()),
dataType: 'json',
contentType: "application/json",
cache: false,
success: function(data) {
alert(data.SaveResult);
}
});
return true;
}
function getJsonTicket() {
...
}
</script>
// Controller action.
public virtual JsonResult SaveTicket(Ticket newTicket)
{
try
{
TicketManager.SaveTicket(newTicket);
return Json(new CreateTicketViewModel {SaveResult = "success"});
}
catch
{
return Json(new CreateTicketViewModel { SaveResult = "error" });
}
}
答案 0 :(得分:10)
待办事项
<button id="save" type="button" onclick="saveClick()" />
确保此按钮不会发布表单。
<强>解释强>
按钮元素的type属性的默认值是“submit”。
答案 1 :(得分:3)
您确定使用的是<button>
而不是<input type="submit">
吗?因为如果你不阻止按钮提交它将提交表格(完整回发)。
<input type="submit" onclick="return saveClick()">
始终返回false, saveClick()
就可以正常工作。
答案 2 :(得分:0)
您必须将type="button"
添加到button
代码