2009-08-24 17 views
2

[送信]ボタンがあるASP.NET2.0 Webページがあります。 ユーザーがクリックすると、その場でXMLファイルが生成され、その結果として返されます。ASP.NETの後方ナビゲーションが失われる

protected void submitBtn_Click(object sender, EventArgs e) 
    { 
     string result = this.ProduceMyXmlResult(); 

     this.Response.Clear(); 
     this.Response.StatusCode = 200; 
     this.Response.ContentType = "application/xml"; 
     this.Response.ContentEncoding = System.Text.Encoding.UTF8; 
     this.Response.Write(result); 
     this.Response.End(); 
    } 

コードの一部は、私が欲しいものを正確に行います。ここでは

はコードです。ただし、ブラウザはXMLファイルを新しいページとして認識しないため、[戻る]ボタンは元のページに戻りません。なぜ、どのように私はそれを克服できますか?

答えて

4

これを行う最も簡単な方法は、Page_Load()でこのコードを実行する別のページを作成し、ボタンが押されたときにリダイレクトすることです。

逆方向のナビゲーションがない理由は、ブラウザがページが変更されたことを認識していないためです。 Submitボタンはポストバックを実行するので、XMLデータをそのポストバックへのレスポンスとして返すので、ブラウザには現在のページの一部の変換であるように見えます(まるで、 Labelコントロールのテキスト)。

これを実現する正しい方法は、ある種のHTTPハンドラを使用することですが、これを行う適切な方法を提案する経験はなく、既にこの方法のC#コードビハインドを使用しています。

+0

+1私の考えよりも優れています。 – MusiGenesis

+0

+1 HTTPハンドラ(つまり、IHttpHandler + web.configの魔法を実装するか、ASHXファイルを追加する - web.configのものを除いたIHttpHandlerの周りのラッパーのような「ページ」) – veggerby

関連する問題