【问题标题】:How to prevent redirect to view after send json data to httppost action in mvc3将json数据发送到mvc3中的httppost操作后如何防止重定向到查看
【发布时间】:2012-05-11 03:44:56
【问题描述】:

我在开发单页网络应用时遇到问题。

当 jQuery 发送 json 到 HTTPPOST 动作时:

$('#user_dialog .create').click(function () {
                            var user = getInfoUser();
                            $.ajax({
                                url: '@Url.Action("Create", "User")',
                                async: false,
                                type: 'POST',
                                data: JSON.stringify(user),
                                datatype: 'json',
                                contentType: 'application/json;charset=utf-8',
                                success: function (data) {
                                    $('#user_dialog').dialog("close");
                                }
                            });
                        });

我在控制器中的 HTTPPOST 操作将处理请求

[HttpPost]
  public String Create(UserAddViewModel model)
        {
            try
            {
                // TODO: Add insert logic here

                return JsonConvert.SerializeObject(true);
            }
            catch
            {
                return JsonConvert.SerializeObject(false);
            }
        }

我的 jQuery success 回调函数将被触发并接收到数据 'true'。

但现在的问题是,在这之后,页面会被重定向到/User/Create查看页面

我不希望它重定向到页面,我只想通过我的 jQuery 代码处理 UI。

是因为它是 HTTPPOST 动作吗?

真正的原因是什么以及如何解决?

【问题讨论】:

    标签: json asp.net-mvc-3 jquery


    【解决方案1】:

    大概,您点击的是一个 URL。您没有阻止默认事件(加载 url)在您的点击事件中发生

    $('#user_dialog .create').click(function (event) {
        event.preventDefault();
        //rest of function
    

    当点击事件结束时,接下来会发生默认事件(如果是链接则加载 URL,如果是提交按钮则提交表单,切换复选框等)。为了防止这种情况,您必须明确地使用preventDefault() 或返回false。有关文档,请参阅 http://api.jquery.com/event.preventDefault/

    【讨论】:

    • 完全正确!!!抱歉,preventDefault 有什么作用?是因为它会提交两次表格吗?是不是因为 preventDefault 会阻止默认的表单提交?
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2013-01-12
    • 2011-08-06
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多