ページのコードビハインドでPostBackUrlのアクションを取得できますか?
データベースを更新してから、値を非表示フィールドとして別のURLにポストバックするonclick関数を呼び出したいと思います。
ページのコードビハインドでPostBackUrlのアクションを取得できますか?
データベースを更新してから、値を非表示フィールドとして別のURLにポストバックするonclick関数を呼び出したいと思います。
server.Transfer を使用しますが、隠しフィールドは非常に安全ではありません。それでは、その場所で (そして、既に server.transfer を使用しているので) Context.Items を使用しないのはなぜですか? オブジェクト全体を転送できます。例:これは元のページにあります-
Context.Items.Add("Contact", contactID)
Server.Transfer("~/ViewContact.aspx")
結果のページであなたがする -
Dim contactID = Context.Items.Item("Contact").ToString()
転送はサーバーで行われ、要求されたページとは異なるページであることをブラウザーに通知しないため、server.transfer を使用するときは細心の注意を払う必要があります。これは、予期しない場合にポストバックを実行しようとすると、問題が発生する可能性があります。
実はこの件についてブログを書いていたのですが…
ポストバックしたいすべての入力を含む単純な白いページをフォーム内に作成し、javascript を使用してポストバックします。
問題は、ユーザーが JavaScript を有効にしていない場合です。その場合、この白いシンプルなページに、このページは数秒で他のページに自動的にリダイレクトするか、ここをクリックして今すぐリダイレクトすることをユーザーに伝えるメッセージが含まれています。 .
この単純な白いページは、クリック後に通常のページを上書きしただけです。
ソースコードと例を使用して、フォームデータを別の URLに投稿する同様のトリックであるこの投稿を読むこともできます。
また、asp.net Web ページ間で値を渡す方法は他にもたくさんあります。
これは通常、支払いゲートウェイ プロバイダーがあり、ページからそのゲートウェイ (たとえば、paypal) に転送するために勝った場合です。もう1つの解決策は、次のページに送信したいものの要約を含むページを作成し、そのページにすべてのデータ、要約、およびゲートウェイへの通常の投稿を含めることです。
ボタンがクリックされたときに関数を (コード ビハインドで) 実行する必要があります。その機能が終了したら、コードビハインドをhiddenfield値を持つ別のページに投稿したい
関数が終了すると、別のページに戻ることはできません。できることは、他のページに送信する必要がある非表示の入力としてデータを含む単純なフォームをページにレンダリングし、レンダリングしたこの新しいフォームを自動投稿することです。
protected void Button1_Click(object sender, EventArgs e)
{
// ...you calculations here...
StringBuilder sbRenderOnMe = new StringBuilder();
// the form and the data
sbRenderOnMe.AppendFormat(
"<html><body><form action=\"http://www.google.com\" method=\"post\" name=\"form1\">"
+ "<input value=\"{0}\" id=\"lst-Send1\" name=\"Send1\" type=\"hidden\" />"
+ "<input type=\"submit\" name=\"Button1\" value=\"press me if not automatically redirect\" id=\"Button1\" />"
+ "</form>"
, 1100
);
// the auto submit
sbRenderOnMe.AppendFormat("<script>document.form1.submit();</script>");
sbRenderOnMe.AppendFormat("</body></html>");
Response.Write(sbRenderOnMe.ToString());
Response.End();
}
小さなちらつきがあり、javascriptがないと自動的に機能しない唯一のマイナスは、ボタンを押すようにユーザーに言う必要があります.
元のコード ビハインド イベントの処理が完了したら、Server.Transferを使用して、フォーム変数とクエリ文字列変数を保持できます。
Server.Transfer("OtherPage.aspx", true);