asp.net按钮onclick发布到另一个页面

时间:2013-02-07 10:42:40

标签: c# asp.net post postback

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

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

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

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

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

4 个答案:

答案 0 :(得分:1)

建议的解决方案各种有效,但唯一真正完成了我需要的解决方案就是这个:

Link to SO answer

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

在任何情况下,感谢所有答案,但如果您遇到类似的问题,请查看链接的答案。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以从后面的代码中执行POST,您可以在此答案中找到详细信息Redirect to another page using Post method from Code behind

答案 3 :(得分: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);
}

希望这有帮助!