在ASP.NET的用户控件开发中,控件中图片的路径设置问题一直困拢着我。
  在net1.1中,我查了下资料,说是用“~”可以代表根目录。试着用这种方法解决:       

用户控件的相关路径问题:ResolveUrl(转载)_asp.netHyperLink.ImageURL = " ~/images/someimage.png "
用户控件的相关路径问题:ResolveUrl(转载)_asp.netHyperLink.NavigateURL
= " ~/index.aspx "
用户控件的相关路径问题:ResolveUrl(转载)_asp.net

  使用后发现不总是能成功。如果是在默认站点的根目录下就行,若是在虚拟目录下就老是自动找到根目录下。原本应该是http://localhost/MyWebApp/images/someimage.gif却变成了http://localhost/images/someimage.gif
  后来在学习MS Community Starter源代码时,发现是用ResolveUrl()方法处理的。

用户控件的相关路径问题:ResolveUrl(转载)_asp.net %  ResolveUrl( " ../../Images/Small_Button.gif " ) %>

  用ResolveUrl( )确实能解决用户控件中图片路径问题。是个好办法。

以前我在自己做的时候确实出现过显示不了图片的问题,当时我是在每个目录下都复制了图片解决了问题,可是我看到这片文章后,想检验一下,当我把图片删除之后,别人页面还是可以显示,不知道怎么就好了,比较纳闷。

ResolveUrl:

我的站点名字叫

http://net_boy:801/

下面有一个/Images目录 放置图片的

用户控件我放置在/Controls目录下

我的一个用户控件叫 TitleSearch.ascx

加入我的标题图片是/Images下的一个叫TitleSearch.gif的图片

当这种时候你就要这样使用

ResolveUrl("../Images/TitleSearch.gif")

这样引用的话,就不会出现问题

否则当引用这个控件的页面位于“/”根目录下时,就会找不到这个图片了

这里要注意一点:当路径位于服务器端控件时,就不用ResolveUrl 这个方法只是转换客户端控件的路径,

服务器端路径服务器端可以自动转化,如果你加入ResolveUrl会发现反而画蛇添足!