Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是什么导致$.ajax返回完整的帖子_Jquery_Json_Asp.net Mvc - Fatal编程技术网

Jquery 是什么导致$.ajax返回完整的帖子

Jquery 是什么导致$.ajax返回完整的帖子,jquery,json,asp.net-mvc,Jquery,Json,Asp.net Mvc,有人能告诉我是什么原因导致$.ajax“POST”请求返回完整的帖子(整版刷新) 我在ASP.NET MVC上下文中使用$.ajax'POST',视图通过$.ajax'POST'请求调用控制器方法(返回JSON结果) 代码如下 做 以确保此按钮未发布表单 说明: 按钮元素的type属性的默认值是“submit” 您确定您使用的是而不是?因为如果不阻止按钮提交,它将提交表单(完整回发) 只要saveClick()始终返回false,就可以工作。您必须将type=“button”添加到按钮标签

有人能告诉我是什么原因导致$.ajax“POST”请求返回完整的帖子(整版刷新)

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

代码如下



以确保此按钮未发布表单

说明:

按钮元素的type属性的默认值是“submit”


您确定您使用的是
而不是
?因为如果不阻止按钮提交,它将提交表单(完整回发)


只要
saveClick()
始终返回false,就可以工作。

您必须将
type=“button”
添加到
按钮标签中

是否返回局部视图?您还可以显示AJAX调用和控制器操作!请提供一些示例代码,以便我们可以仔细查看。我不明白您所说的“导致$.ajax'POST'请求返回完整的帖子(整页刷新)”是什么意思,如果您在锚定标记的单击事件中调用$.ajax,则可能不调用
preventDefault
。@Simon,代码已添加到其中,同样的结果。但是我做了一件事,删除了html
标记,在其余功能按要求工作时,我成功地阻止了完整的帖子。但这并不是完美的解决方案,因为jQuery验证插件需要
标记。西蒙,你看到什么解决办法了吗?谢谢,亲爱的!这就是魅力所在。你能告诉我这是怎么把柱子修好的吗?这是一个完美的场景。再次感谢西蒙。是的,是一个按钮。然而随着时间的推移,我添加了
returnfalse
saveClick()
函数的末尾,但结果相同。在另一次尝试中,我删除了html
标记,并在其余功能按要求工作时成功地停止了完整的回发。但这并不是完美的解决方案,因为jQuery验证插件需要
标记。你认为这有什么解决办法吗?谢谢。在onclick属性中必须有“return”,因为我在按钮标签中缺少了
type=“button”
。添加它解决了这个问题。谢谢你,乔纳斯。
onclick=“return saveClick()”
也应该可以。(而不是类型)是的,你是正确的。正如您所提到的,该方法必须始终返回false,或者将该方法调用为:
onclick=“saveClick();return false;”
谢谢Jonas。
// 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" });
    }
}
<button id="save" type="button" onclick="saveClick()" />