在同一站点上从一个页面到另一个页面执行Response.Redirect的正确方法

我确信这个问题一次又一次被问到。 是的,我已经搜索过了。 但是,我无法找到一个清楚地展示我想要完成的事情的例子。

我目前在mywebsite/test.aspx ,我想重定向到mywebsite/testing.aspx 。 但是我希望这个重定向既可以在服务器上运行,也可以在visual studio的调试中运行。 我试过了

 Response.Redirect(Request.RawUrl.Replace(Request.RawUrl,"testing.aspx")) 

然而,这取代了整个事情。

希望这是有道理的 – mywebsite/test.aspx应该重定向到mywebsite/testing.aspx

使用应用程序相对URL。 ~/表示应用程序根路径,因此它适用于//virtual-directory/

 Response.Redirect("~/testing.aspx"); 

如果您的页面位于同一目录级别,则可以使用:

 Response.Redirect("testing.aspx", false); 

如果您的页面位于应用程序根目录,则可以使用以下命令:

 Response.Redirect("~/testing.aspx", false); 

最后,如果您的页面位于当前页面的子目录中,您可以使用:

 Response.Redirect("MyFolder/testing.aspx", false); 

您可以使用相对于网站根目录的URL。 这些url始终以/表示’root’

对于Response.Redirect和您知道的任何其他URL将由服务器处理(如在服务器控件中指定的url),最好以~/ root身份启动url,这将有助于虚拟目录混乱。