在ASP.NET中丢失向后导航

时间:2009-08-24 12:02:34

标签: asp.net navigation back-button

我有一个带有“提交”按钮的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文件识别为新页面,因此BACK按钮不会将我带回原始页面。为什么以及如何克服这个问题?

1 个答案:

答案 0 :(得分:4)

我认为,最简单的方法是创建一个单独的页面,在Page_Load()上执行此代码,并在按下按钮时重定向到该页面。

您没有向后导航的原因是浏览器不知道页面已更改。由于“提交”按钮正在执行回发,并且您将返回XML数据作为对该回发的响应,因此浏览器看起来好像这只是对当前页面的某些转换(就像您更改了标签控件的文本。)

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