C# 查询重定向!

C# 查询重定向!,c#,asp.net,C#,Asp.net,我使用了一个查询字符串参数从第1页重定向到第2页。从第2页开始,如果从第1页调用了第2页,我想将它重定向到第3页。检查查询字符串是否被使用的条件是什么?? 请帮帮我!!谢谢大家 您可能希望解析HTTP_REFERER并查看是否从第1页调用了第2页。基本上,您将基于HTTP_REFERER值构建第2页重定向。在C#中,该值可通过以下方式获得: Page.Request.ServerVariables("HTTP_REFERER") 在第2页的查询字符串中也输入一些内容,并进行检查 但是,您应该始

我使用了一个查询字符串参数从第1页重定向到第2页。从第2页开始,如果从第1页调用了第2页,我想将它重定向到第3页。检查查询字符串是否被使用的条件是什么??
请帮帮我!!谢谢大家

您可能希望解析HTTP_REFERER并查看是否从第1页调用了第2页。基本上,您将基于HTTP_REFERER值构建第2页重定向。在C#中,该值可通过以下方式获得:

Page.Request.ServerVariables("HTTP_REFERER")

在第2页的查询字符串中也输入一些内容,并进行检查

但是,您应该始终减少重定向的数量(一些浏览器限制为5个,以防止出现这样的情况:虽然不是一个确切的循环,但浏览器将永远重定向-如果已经进行了几次重定向才能到达您的站点,那么在这一过程中,它将停止重定向)。在第1页中,您应该重定向到第3页。如果你需要做一些事情,那么在第1页或第3页做,但请注意,这只是从浏览器的角度来看;如果您将server.transfer转换到第2页,那么当代码的逻辑模式为1->2->3时,在浏览器中它看起来像1->3。在本例中,如果您想知道您已经从第1页获得了原始URI,您还可以检查原始URI


从另一个角度看,重定向是UI的一部分。如果用户在第1页,那么这应该是有意义的,或者您的UI中存在错误。如果用户最终出现在第3页,那么这也应该是有意义的,或者您的UI中有一个bug。考虑到这一点,从用户的角度来看,第2页的目的是什么?我并不是说不可能有一个(我能想到多个重定向有意义的情况,特别是如果它们是不同类型的,例如永久移动后再看另一个有意义),但很有可能不是这样的,您可以在服务器中保持流量的同时处理其中的一部分。

也许我没有正确理解这一点。。但是为什么不直接从第1页重定向到第3页呢?

Ram,这是我对您想要的解释:如果用户由于从第1页重定向而访问第2页,用户将自动重定向到第3页。如果用户直接访问第2页(不访问第1页),用户将停留在第2页(不重定向到第3页)


如果是这种情况,在第1页内,您可以设置重定向(“Page2.aspx?previouspage=Page1”),然后在第2页内的Page_load方法中,检查查询字符串,如果previouspage存在且等于“Page1”,则重定向到第3页,否则不执行任何操作,第2页将显示出来。

我不确定是否理解您的问题,但您似乎正在寻找一种跨多个web请求维护状态的方法。考虑查看页面的“代码>会话/<代码>对象或当前<代码> HtpValue,以存储跨多个Web请求的检索值。请允许我明确,我要重定向到一个页面(3)。从第1页如果我重定向的第1页是使用查询字符串从第2页重定向的?重定向上的引用程序应该将引用程序保存到用重定向响应的资源(或重定向到它的资源,等等),因此如果可以从第0页直接转到第2页,这并不是说它是否是由于第1页的重定向而发生的。