代码之家  ›  专栏  ›  技术社区  ›  TheLegendaryCopyCoder

从控制器操作发布到第三方网站

  •  0
  • TheLegendaryCopyCoder  · 技术社区  · 6 年前

    我有一个MVC页面,里面有一个表单,当我首先向我的控制器提交帖子并由我的控制器操作处理时。 在控制器操作时,我操作发布的数据,然后需要将该数据重新发布到第三方网页。

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

    更新

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   TheLegendaryCopyCoder    6 年前

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

    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();
        }