在本地主机和服务器上如何获取URL路径?

12

请指导我如何获取本地计算机和服务器上的URL路径,但不包括页面名称。

例如,对于页面Active.aspx,我想要获取的本地路径如下所示(加粗部分):

*http://localhost:1532/WebFolder/*Active.aspx

而在服务器上,我想要获取的是加粗部分:

*http://domain.com/WebFolder/*Active.aspx

类似地,如果页面在根目录中,它将返回:

*http://domain.com/Active.aspx 或 *http://localhost:1532/**Active.aspx


这里有一些建议可能会有所帮助:http://stackoverflow.com/questions/6544096/static-content-on-development-and-production-envoirnment - Daniel Powell
6个回答

14

Request.ApplicationPath - 获取服务器上ASP.NET应用程序的虚拟应用程序根路径。

Request.Path - 获取当前请求的虚拟路径。

编辑

要获取域名+当前请求+当前应用程序的虚拟路径,请尝试以下步骤:

Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath

@user576510 - 请尝试第二个选项。 - Pranay Rana
2
非常好用。我在我的开发机器上测试时调用了一个iFrame内的页面,它使用LocalHost然后是一些我不想硬编码的随机端口号。按照您的建议应用如下:Request.Url.GetLeftPart(UriPartial.Authority) + Page.ResolveUrl("TestHttpMethods.aspx"),解决了问题并给了我这个:"http://localhost:62053/Pages/Forms/TestHttpMethods.aspx"。谢谢! - MikeTeeVee

1

Request.Url.AbsoluteUri是正确的方法


1

使用这个。它有效。

System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/" + System.Web.HttpContext.Current.Request.ApplicationPath + "/" + folderpath + filename;


0

如果你只想获取一个页面的本地文件路径,例如 "Active.aspx" ,请使用

Request.AppRelativeCurrentExecutionFilePath

它会忽略你的本地主机、本地主机文件映射或虚拟目录名称,并返回“~/Active.aspx”。

其他属性,如Request.Url.LocalPath也无法帮助。


0

你可以使用Request.servervariable["Remote_addr"]获取IP地址。但是如果在本地主机上尝试,则会返回计算机的默认IP地址。您可以从Web服务器检查此代码,以获取IP地址。


-1

试试这个:

Server.MapPath("~/");
       or 
Request.Url.Host

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接