首页 > 解决方案 > ajax发布到控制器后如何返回视图?

问题描述

我正在尝试将数据从视图发布到控制器,然后返回视图以从控制器获取反馈。这是我的脚本。

<script type="text/javascript">
$(document).ready(function () { 
    $("Submit").click(function (e) {
        e.preventDefault();

        var token = $('input[name=__RequestVerificationToken]').val();
        console.log(token);

        var dataToPost = $(this).serialize();
        $.ajax({
            url: "Process/Payment"
            , method: "POST"
            , data: {
                __RequestVerificationToken: token
                , page: dataToPost
            }
            , done: function (data) {
                window.location.replace (data.newUrl);
                alert(data);
            }
            , error: function () {
                alert("Ajax call failed");

            }
        })
    })
})

这是我的控制器。包装在“支付”模型中的所有数据都处于良好状态,可以很好地从视图传递到控制器。而且,我想返回查看(网址:“流程/付款”)

[HttpPost]
public ActionResult Allowance (Allowance allowance) {
    return Json(new {
            newUrl = Url.Action("Payment", "Process")
        }
    );

但是当页面返回本地主机时,我只是得到这个页面。

在点击提交按钮作为 POST 之前,我应该如何返回看起来像的页面?

为什么“ window.location.replace() ”不能将页面重定向到原始页面?

谢谢

标签: jqueryajaxmodel-view-controllerviewcontroller

解决方案


只需添加一个 window.location.href=="Your Desired Page"; 关于您的 ajax 调用的成功事件。这样就行了。

快乐编码。


推荐阅读