【发布时间】: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 调用(这根本没有意义 - 只需进行正常提交)
-
并且没有像
<submit>这样的html元素,所以你函数中的任何代码都不会被执行(你不应该在不知道如何调试它们的基础知识的情况下编写脚本) - 我假设您的意思是$("#Submit")假设您有一个带有id="Submit"的元素 -
大家好,我把这个网址弄错了:“流程/付款”。这应该是只有没有控制器的动作方法。谢谢大家。
标签: jquery ajax model-view-controller view controller