2

我有一个带有提交按钮的 ASP.NET2.0 网页。当用户单击时,我会即时生成一个 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 数据作为对该回发的响应,因此在浏览器看来,这只是对当前页面的一些转换(就像您更改了Label 控件的文本)。

完成此操作的“正确”方法是使用某种类型的 HTTP 处理程序,但我没有经验来建议正确的方法,并且您已经为该方法提供了 C# 代码隐藏。

于 2009-08-24T12:08:18.397 回答