0

ボタンがクリックされたときに情報を処理する.Netのページがあります。ポストバックし、いくつかの情報を更新してから、ユーザーをリダイレクトします。

私が今やりたいのは、この同じボタンに対してです。クリックすると情報が更新されますが、リダイレクトの代わりに別のサイトに POST が実行されます。その理由は、この別のサイトが、私が送信したフォームから大量のデータを読み取る必要があるためです。

したがって、PostBackUrl プロパティについては知っていますが、必要なデータの処理が停止します。

それで、別のサイトへの POST になる両方のポストバックをどうにかして組み合わせることができる別の方法はありますか?

または、代わりに、必要な更新を行ってから POST を実行できる方法はありますか?

4

4 に答える 4

1

提案された解決策はすべてうまくいきましたが、実際に私が必要としていたことを正確に行ったのはこれだけでした:

SO回答へのリンク

上記の他の回答がうまくいかなかった理由は、私が支払いゲートウェイに POST していたためであり、何らかの理由で、私がリンクしたものを除くすべてのソリューションにさまざまな欠落フィールドがあるという問題があると彼らのシステムが考えたからです。彼らのシステムにアクセスして、彼らが実際に何をしていたのかを知ることはできません。

いずれにせよ、すべての回答に感謝しますが、同様の問題が発生している場合は、リンクされたものをご覧ください。

于 2013-03-27T12:39:18.760 に答える
0

PostBack が絶対に必要でない場合は、リクエスト クエリ自体で実際に送信できます。

于 2013-02-07T10:46:45.863 に答える
0

コードビハインドから実行できますPOST。詳細はこの回答で確認できますコードビハインドからPostメソッドを使用して別のページにリダイレクトします

于 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 に答える