0

我对 Response.Redirect 有一个奇怪的问题。我正在使用带有 .NET 2 框架的 VB.NET(所以 VS2005 和 SP1)。

我有一个页面,我在上面提交表单(这是一个正确的表单方法=“POST”硬编码到页面上),并且可以正确地将页面数据发回然后处理。作为该处理的一部分,系统会在处理完成后确定我们是否需要发送到另一个 URL。所以 request.httpmethod = "POST"。

因此,如果“GotoPage”参数指定了一个 URL,我们就会执行 response.redirect(URL, false)。(错误,因为我们希望完成页面处理以写入一些计时日志等)。

页面正确重定向,但响应不是具有“GET”作为 request.httpmethod,而是具有“POST”!

现在,我们正在使用我们自己的自定义框架,以便我们使用 HTTPRequest 方法来确定页面是否已回发或正在“获取”,因此“IsPagePostBack”属性不起作用(仅当您是使用普通的 .NET 控件和表单提交)。在所有其他情况下,我们的代码运行良好,但可能导致 Request.httpMethod 设置不正确的原因是什么?我试过在重定向之前做一个 response.clear ,以防事先写出标题但无济于事。

有什么线索吗?!

谢谢,安迪

4

1 回答 1

0

尝试清除标题然后添加您想要的标题怎么样?我认为“GET”是304?

response.clearheaders
response.appendheader("GET", 304)
response.redirect(...)

链接到MSDN 上的response.appendheader

于 2009-09-22T17:00:44.433 回答