ASP.Net 2.0 MasterPage中路径的处理

用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的大小写问题,我们指定的虚拟目录名称可能是大小写字母都有的,而用户录入的就是另外一回事情了,很可能全部是小写的。

Life is like a boat, and I'm at sea.

posted @ 2005-04-03 10:19 蜡人张 阅读(2851) 评论(2)  编辑 收藏

不用这么麻烦,把masterpage中的所有相对路径用ResolveUrl()这个方法处理一下就行了,前台或或后台代码中都可以,比如前台中:

<a href='<%=ResolveUrl("default.aspx")%>'>首页</a>

就行了!

======================
.net开发资源精华:http://***

 回复 引用   
#2楼 2007-04-20 14:02 wyb[未注册用户]
楼上方法太好了,多谢!!!