【问题标题】:How to Redirect and post a collection of data to destination URL and redirect to that external URL in MVC c# without using Ajax or client side如何在不使用 Ajax 或客户端的情况下将数据集合重定向和发布到目标 URL 并重定向到 MVC c# 中的外部 URL
【发布时间】:2021-12-28 11:50:18
【问题描述】:
我需要将数据发布到第三方 URL 并在提交点击时重定向到该 URL。单击提交后,我需要执行一些业务逻辑并将表单数据发布到第三方 URL 并重定向到该 URL。
我尝试使用带有动作的提交按钮到控制器动作方法,但是有没有像 response.redirect 这样的方法,将要提交的数据集合传递到目标 URL,然后通过重定向发布所有数据。
提前感谢您的帮助和回复
【问题讨论】:
标签:
c#
asp.net-mvc
model-view-controller
【解决方案1】:
如果第三方 URL 是一个 get 方法并接受与 POST 相同的参数,那么您可以通过一个重定向操作同时重定向用户并将数据发送到第三方站点。例如:
var model = new MyObject { Id =100, Name = "ABC", Code = "100ABC"};
return RedirectToAction("Details","Store", model);
此代码将向浏览器发送 302 响应,其中 Url 中的查询字符串为
/url?Id=100&Name=ABC&Code=100ABC
这里的 MyObject 将是您操作的发布对象。
HTTP POST 和重定向以不同的方式工作。如果您正在从后端进行 POST,那么在发布之后也将用户重定向到后端的 URL。在这种情况下,首先会有一个帖子,然后是重定向。我想你不是在找这个。
【讨论】:
-
感谢您的回复,我必须将数据发布到 URL(例如:testuat/buyonline),然后该 URL 通常会重定向到包含预填充数据的页面(之前已发布) )。当我尝试使用 httpclient 异步发布数据时,我得到的响应是 HTML,这无助于我重定向到外部站点。
-
【解决方案2】:
感谢您的所有帮助,我能够通过在控制器中创建包含所有必需数据的表单将表单数据发布到外部 URL,通过 Ajax 将该表单返回到 js 文件并通过 jQuery 表单提交,并且工作正常。