1

クエリ文字列を読んでいるページがあります。クエリ文字列に特定の値が存在する場合、起動スクリプトを登録しています。スクリプトが実行された後、クエリ文字列から要素を削除し、新しいURLでページをリロードしたいと思います。

これは、ページの事前レンダリングイベントで実行されるコードです。

for (int i = 0; i < this.Page.Request.QueryString.Count; i++)
            {
                if (this.Page.Request.QueryString[i].Equals("filesize"))
                {
                    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Alert", "alert('Maximum file size exceeded.');", true);

                    var nameValueCollection = HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());
                    nameValueCollection.Remove("exception");
                    string url = HttpContext.Current.Request.Path + "?" + nameValueCollection;
                    Response.Redirect(url);
                }
            }

ただし、アラートが表示される前にリダイレクトが実行されています。アラートを表示するにはどうすればよいですか。アラートを閉じた後、ページをリダイレクトできますか?

4

1 に答える 1

2

Response.Redirect(url)は HTTP 302 を送り返しているため、ブラウザは本文の内容を無視している可能性が高く、起動スクリプトはまったく実行されません。いくつかのオプション:

  1. リダイレクトを削除してコンテンツを挿入すると、表示されているエラー メッセージにユーザーが反応できるようになります。
  2. エラーをセッション変数に保存し、エラー ページにリダイレクトしてユーザーに表示することができます。
于 2012-04-05T12:52:33.333 に答える