2

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

コードは次のとおりです。

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

1 に答える 1

4

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

戻るナビゲーションがないのは、ブラウザーがページが変更されたことを認識していないためです。[送信] ボタンはポストバックを実行しており、そのポストバックへの応答として XML データを返しているため、ブラウザには、これが現在のページの単なる変換であるかのように見えます (たとえば、ラベル コントロールのテキスト)。

これを達成するための「正しい」方法は、ある種の HTTP ハンドラーを使用することですが、適切な方法を提案する経験がなく、このメソッドの C# コード ビハインドを既に使用しています。

于 2009-08-24T12:08:18.397 に答える