【问题标题】:How Return to View after ajax post to controller?ajax发布到控制器后如何返回视图?
【发布时间】:2018-10-17 02:55:55
【问题描述】:

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

<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");

            }
        })
    })
})

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

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

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

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

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

谢谢

【问题讨论】:

  • 如何使用 window.location.href = "URL"
  • 您已经在查看页面。你不是吗?
  • 当你想要重定向的时候,你到底为什么要进行 ajax 调用(这根本没有意义 - 只需进行正常提交)
  • 并且没有像&lt;submit&gt;这样的html元素,所以你函数中的任何代码都不会被执行(你不应该在不知道如何调试它们的基础知识的情况下编写脚本) - 我假设您的意思是 $("#Submit") 假设您有一个带有 id="Submit" 的元素
  • 大家好,我把这个网址弄错了:“流程/付款”。这应该是只有没有控制器的动作方法。谢谢大家。

标签: jquery ajax model-view-controller view controller


【解决方案1】:

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

快乐编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多