0

我在.Net 中有一个页面,当前在单击按钮时会处理一些信息。它发回,更新一些信息,然后将用户重定向。

我现在想要做的是同一个按钮,当它被点击时,信息会被更新,但它不是重定向而是发布到另一个站点。原因是这个其他站点需要从我提交的表单中读取一堆数据。

所以,我知道 PostBackUrl 属性,但这将停止处理我需要完成的数据。

那么有没有另一种方法让我能够以某种方式将两个回发结合起来,然后变成另一个站点的 POST 呢?

或者让我能够以某种方式进行我需要的更新,然后进行 POST?

4

4 回答 4

1

建议的解决方案都很有效,但唯一真正做到了我需要的解决方案是这个:

链接到 SO 答案

上面的其他答案不起作用的原因是我正在发布到支付网关,无论出于何种原因,他们的系统认为除了我链接到的解决方案之外,所有解决方案中的各种缺失字段都存在问题。不知道为什么,我无法访问他们的系统以了解他们实际在做什么。

无论如何,感谢所有答案,但如果您遇到类似问题,请查看链接的答案。

于 2013-03-27T12:39:18.760 回答
0

如果 PostBack 不是绝对需要的,您实际上可以在请求查询本身中发送它们。

于 2013-02-07T10:46:45.863 回答
0

您可以POST从代码隐藏中进行操作,您可以在此答案中找到详细信息Redirect to another page using Post method from Code behind

于 2013-02-07T10:51:47.993 回答
0

如果我的问题是正确的,我认为您将需要从 Request.Form 获取所有表单数据并向另一个站点发出 HttpWebRequest:

string url = "http://anothersite.com/";

// create post data
StringBuilder postDataBuilder = new StringBuilder();
foreach (var key in this.Request.Form.AllKeys)
{
    postDataBuilder.AppendFormat("{0}={1}&", this.Request.Form[key]);
}

string postData = postDataBuilder.ToString();

// create the web request for the POST
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = postData.Length;

// add the post data
using (StreamWriter requestStream = new StreamWriter(webRequest.GetRequestStream()))
{
    requestStream.Write(postData);
}

希望这可以帮助!

于 2013-02-07T10:59:41.410 回答