Oracleプロシージャを呼び出すボタンを持つフォームを使用する.NET 4.0アプリケーションを継承しました。多くの場合、これらのボタンを押すことによってポストバックが発生する前に、RegisterStartupScriptを使用して実行後にページを更新した後に警告を表示します。VB.NET - registerstartupスクリプトが同じページにリダイレクト
ユーザーがF5キーを押してページを更新したときにフォームの再送信を無効にしたい場合、最も簡単な方法はResponse.Redirectをポストバックの代わりに同じページに使用することです。だから、私は次のように試しました:
Protected Sub btnButton_Click(sender As Object, e As System.EventArgs) Handles btnButton.Click
Try
' Do something (call Oracle procedure)
Dim TheScript As New StringBuilder
TheScript.Append("<script language=JavaScript>alert(""Success!"");</script>")
ClientScript.RegisterStartupScript(GetType(String), "ShowInfoPage", TheScript.ToString)
Catch ex As Exception
' Do something
End Try
Response.Redirect(Request.Url.ToString(), False)
End Sub
しかし、警告は(明らかに)ページの再読み込み後に発生しません。リダイレクトがRegisterStartupScriptで記録されたスクリプトの損失を伴わないことを確認する迅速方法はあり
- :この時点で 私は2つの質問がありますか? 「速い」とは、たとえば、「リダイレクトの代わりに転送を使用する」、またはアラート管理コードの書き換えに関係しないものを意味します。
- コードの各部分にResponse.Redirectを追加しないで、ポストバックを要求した同じページにリダイレクトするために、どのようなポストバック要求を傍受することができますか?私はHttpModuleやそれに類するものを考えましたが、私はこれについて多くの経験がありませんでしたが(無意味なことを言ったら申し訳ありません)。
おかげ
これは良い方法かもしれません(私はQueryStringの代わりにSessionを使うことを好むかもしれませんが)私のケースでは、コードを書き換えて、非常に多くのケースを考慮する必要があります( "status"と "success"氷山)私はDB側で複数の提出を管理することを好む –