jquery - MVC 发布 Json 错误

标签 jquery asp.net-mvc

我尝试向 MVC 操作发出帖子并在网页上显示生成的 JSON。该操作接收 post 命令,但结果显示在新页面上,而不是同一页面上。例如,它会询问我是否要下载或打开该文件。 附言。我也在使用 jQuery 验证。

我的jquery:

submitHandler: function(form) {
                    $('#loading').show();  //adds waiting spinner
                    $.post(
                        $(form).attr('action'),
                        form.serialize(),
                        function(data) {
                            alert(data);
                        },
                        "json"
                    );
                    return false;
                }

我的行动:

[AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken]
public ActionResult ContactUs(FormCollection collection) {
    ...
    return Json("OK");
}

我一直在努力解决这个问题,并且阅读了太多的网络搜索,但仍然无济于事。任何帮助将不胜感激。

最佳答案

我建议您使用 jquery form plugin它允许您执行以下操作:

submitHandler: function(form) {
    $('#loading').show();  //adds waiting spinner
    $(form).ajaxSubmit();
}

您还可以将选项传递给 ajaxSubmit 方法:

$(form).ajaxSubmit({
    success: function(data) {
        alert(data);
    }
});

如果您不想使用任何其他插件,请确保执行此操作(请注意,form 包含在 $() 中,以便调用 序列化方法):

$.post(
    form.action,
    $(form).serialize(),
    function(data) {
        alert(data);
    },
    'json'
);

关于jquery - MVC 发布 Json 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541082/

相关文章:

c# - 从 Controller 返回局部 View ?

asp.net-mvc - 如何使用 CaSTLe.Windsor 通过依赖注入(inject)传递构造函数参数?

regex - 什么是 ScaffoldColumn 和 RegularExpression 属性

asp.net-mvc - 在查询字符串中使用 GUID 以确保安全

javascript - 在条形组件前后添加文本

jQuery - 仅淡入一次

javascript - jQuery Bootstrap 对话框 $backdrop 未定义

jquery删除除div之外的所有子元素

jquery - HTML 选择滚动条在 Chrome 32 中无法正常运行

javascript - 如何从一个按钮单击事件获取另一个按钮单击事件的值