2010-01-30 136 views
12

我使用Request.ApplicationPath学习中,我运行虚拟目录的名称。有更可靠的方法吗?获取虚拟目录的名称?

+3

是什么让'Request.ApplicationPath'不可靠? – 2010-01-30 18:44:58

+1

我从来不应该使用“可靠”这个词。 “清洁工”本来是更好的方法。我想的东西,给我的姓名(或别名)虚拟目录没有关于我在开头的斜线。佩蒂,我知道,但我不介意问这些事情。我为我可怜的措辞感到抱歉。 – lance 2010-01-30 21:42:16

+1

创建一个实用功能来提供你想要的。当然,使用Request.ApplicationPath开始。 – 2010-02-01 22:28:22

回答

16

Request.ApplicationPath是获得虚拟目录的绝对可靠的方式,并且当您拥有HttpContext并且可以请求请求数据时始终可以工作。

用于进一步处理和所述路径的提取部件,看看在VirtualPathUtility类。

2

您需要使用Request.ApplicationPath。这就是它的设计目的。

编辑去与你的评论。

既然你想要一个“清洁”的方式来处理的斜杠,我建议创建一个返回与它来对付斜线,您认为合适的逻辑应用程序的路径效用函数。

0

使用此功能在C#

public static String GetHost() 
{ 
    var request = HttpContext.Current.Request; 
    return request.Url.Scheme + "://" + request.ServerVariables["HTTP_HOST"] + request.ApplicationPath; 
}