我有一个mvc项目,我想做的是:
我正在从我的 JS 脚本发送一个 ajax 请求。处理后,我想重定向到带有模型的页面。
现在我尝试发送一个表单作为 ajax 响应并像这样提交它:
sb.Append("<html>");
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
sb.AppendFormat("<form name='form' action='{0}' method='post'>", "url..");
sb.AppendFormat("<input type='hidden' name='result' value='{0}'>", val1);
.....
在 JS 上:
success: function (result) {
var form = $(result);
$(form).submit();
}
但是这样我需要指定每个帖子参数,我想发送整个模型对象。 我该怎么做?
编辑 完整步骤:
1.使用MVC APP。
2.我在 View 中提交按钮,将用户重定向到我的 JS 代码。
3.Js 代码向名为“Transaction”的 MVC 页面发送 Ajax 请求。
4.C# 代码执行一些操作,现在我需要将用户重定向到一个名为 EOF 的页面,其中包含 ALOT post 参数,这就是为什么我想将它作为 ViewModel 传递。
最佳答案
当您使用 ajax 时,您可以从操作中返回 URL 并在 javascript 中将其重定向:
Controller
public ActionResult Transaction()
{
// Do stuff
return Json(new { success = true, redirecturl = Url.Action("RedirectedAction") });
}
然后在 javascript 中将类似这样的内容添加到您的成功处理程序中:
Javascript(在您的成功处理程序中)
success: function (result) {
if (result.success == true)
{
window.location = result.redirecturl;
}
}
关于c# - Ajax 后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154055/