从管制员的行动发布到第三方网站

时间:2018-08-03 11:48:23

标签: model-view-controller asp.net-mvc-5 http-post

我有一个带有窗体的MVC页面,该窗体在提交时首先提交到我的控制器并由我的控制器动作处理。 在控制器操作中,我操纵发布的数据,然后需要将该数据重新发布到第三方网页。

如何在MVC发布操作中将表单值重定向并重新发布到第三方网页?

更新

这在.Net MVC和WebForms中是可能的。请参阅下面的解决方案。

1 个答案:

答案 0 :(得分:0)

您需要通过以下方式处理[发布]操作:

  1. 添加位置标头,指定要重定向到的页面。
  2. 使用实例HttpStatusCodeResult返回临时重定向。

您必须使用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();
    }