asp.net Web フォームの欠点の1 つは、通常の asp.net ページで1 つの asp.net フォームしか許可されないことです。そのフォームrunat="server"
内に and がある 1 つのフォームは、asp.net コントロールのみが正しく機能し、コード ビハインドと連携します。
ただし、それを破ることはできますが、同じasp.netの機能を持ち続けることはできません。できることは、LiteralControl を使用してページに PayPal ボタン コードを直接レンダリングし、</form>
. 新しいものを追加する直前のクローズのみ。
これを行った瞬間に、同じページへの投稿を忘れて、実際には PP への投稿のみを行う必要があります。一部のasp.netページを機能させる唯一の方法は、最初のフォームを閉じる前にそれを保持し、web.configで検証を維持するオプションを設定することです。
だからあなたはから始めます
<form name="aspnetForm" method="post" action="/ui/login.aspx?ReturnUrl=General.aspx" >
... some controls that post back to aspx page
</form>
そして、あなたはで終わる
<form name="aspnetForm" method="post" action="/ui/login.aspx?ReturnUrl=General.aspx" >
... some controls that post back to aspx page
... up to here maybe the buttons will work for the page, after that not any more
</form> //<---- added by you
// follow the PayPal buttons
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" ... >
</form>
// second button, etc
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" ... >
</form>
// now this close form is orphan....
</form>
別の方法として、ポスト リダイレクトを行うこともできますが、コード ビハインドで PayPal ポスト データを作成する、より多くのコードと中間ページが必要です。ここに例があります http://www.codeproject.com/Articles/37539/Redirect-and-POST-in-ASP-NET
同じトリックを JavaScript で実行し、その場で JavaScript を使用してフォームを作成し、それを Paypal ボタンに投稿します。これらはすべて、JavaScript を使用した同じページ上にあります。
私はそのすべてのテクニックを使用しましたが、それらはすべて機能します。