在同一站点上从一个页面到另一个页面执行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,这将有助于虚拟目录混乱。