用户控件的相关路径问题:ResolveUrl(转载)

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

HyperLink.ImageURL = " ~/images/someimage.png "
HyperLink.NavigateURL
= " ~/index.aspx "

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

%  ResolveUrl( " ../../Images/Small_Button.gif " ) %>

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

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

ResolveUrl:

我的站点名字叫

http://net_boy:801/

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

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

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

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值