是什么导致$ .ajax导致完整的回发

dan*_*dan 5 asp.net-mvc jquery json

有人能告诉我是什么导致$ .ajax'POST'请求导致完整的回发后(整页刷新)?

我在ASP.NET MVC上下文中使用$ .ajax'POST' ,其中视图通过$ .ajax'POST'请求调用控制器方法(返回JSON结果).

代码如下.


// View.
<button id="save" onclick="saveClick()" />
Run Code Online (Sandbox Code Playgroud)
// 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>
Run Code Online (Sandbox Code Playgroud)
// 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" });
    }
}
Run Code Online (Sandbox Code Playgroud)

iap*_*dev 11

<button id="save" type="button" onclick="saveClick()" />
Run Code Online (Sandbox Code Playgroud)

确保此按钮不会发布表单.

说明:

button元素的type属性的默认值是"submit".

/sf/answers/232051151/