我有一个带有窗体的MVC页面,该窗体在提交时首先提交到我的控制器并由我的控制器动作处理。 在控制器操作中,我操纵发布的数据,然后需要将该数据重新发布到第三方网页。
如何在MVC发布操作中将表单值重定向并重新发布到第三方网页?
更新
这在.Net MVC和WebForms中是可能的。请参阅下面的解决方案。
答案 0 :(得分:0)
您需要通过以下方式处理[发布]操作:
您必须使用307临时重定向状态响应代码,因为它维护了请求的POST方法。如果您使用302状态响应,浏览器会将请求转换为GET请求并删除最初发布的表单值。
它如何工作?
这可以通过使服务器与浏览器通信来通知页面位置已更改,从而起作用。然后,浏览器将表单数据重新发布到新页面位置。
以下用法示例:
[HttpPost]
public ActionResult Test()
{
var amount = Request["amount"];
string url = "/Home/Test2";
HttpContext.Response.AddHeader("Location", url);
return new HttpStatusCodeResult(307);
}
public ActionResult Test2()
{
var x = Request["amount"];
Response.Write("Stuff 123...." + x);
return View();
}