用VS.Net2005开发ASP.Net 2.0应用程序时,提出了MasterPage的概念,相当于模板。

在一个MasterPage中设定文件的路径,当不在相同目录下的文件使用这个MasterPage时对该路径的链接会出问题,此时使用相对路径是不适宜的。

可以使用下面的方法进行处理:

string _url = Page.Request.Url.ToString();
string _ret = _url.Substring(0, _url.ToLower().IndexOf("/你的虚拟目录名称/", 0)) + "/你的虚拟目录名称/";

这样得到的_ret即为Web项目的绝对路径,可以在此基础上添加对项目中任何文件路径的链接。

使用ToLower()方法是为了避免Url的大小写问题,我们指定的虚拟目录名称可能是大小写字母都有的,而用户录入的就是另外一回事情了,很可能全部是小写的。