使用ResolveUrl设置相对路径

在使用用户控件时,会碰到这样的问题,如果要设置html控件的路径,有时可能会出问题。因为用户控件可能要在多个页面使用,在不同的页面路径可能不同,为了保证用户控件在所有的页面都能使用,并且html控件的路径不会出问题,可以使用ResolveUrl这个方法来设置路径。ResolveUrl方法可以返回页面所在应用程序下的相对地址。

1.设置用户控件中img标签的图片路径时,可以使用ResolveUrl来实现。

<img src="<%=ResolveUrl("~/images/Default/index_bottom1.gif") %>"/>

上面的效果与使用Image服务器控件,设置它的ImageUrl="~/images/Default/index_bottom1.gif"的效果是一样的。

2.在用户控件中发送ajax请求时,设置请求的URL路径。

、发现利用服务器控件不会出现任何问题。服务器端路径服务器端可以自动转化,如果你加入ResolveUrl会发现反而画蛇添足!
2、如果用了HTML控件,条件是:如果一个用户控件目录里中有一个用户控件,此用户控件利用HTML控件来显示其他目录里的图片,此时如果此用户控件拖放到根目录上的网页时,不能正确显示图片,此时必须用ResolveUrl方法,就不会出现问题。写法是:<img src='<%=ResolveUrl("../Images/head.JPG") %>' />

一句话:如果你用html控件或html标签最好加上ResolveUrl方法,以防止出错;如果是用服务器控件就不用考虑ResolveUrl方法了。

===================

原方到此止。

我补一下,^_^

实际工作中,最多是与数据打交道。那么怎么用ResolveUrl与<%#Eval("")%>结合呢,哈哈

<%# ResolveUrl(string.Format("~/Demo.aspx?Param={0}", Eval("'DataItem'")) %>
OR
<%# ResolveUrl((string)Eval("id", "~/Demo.aspx?iParam={0}")) %>
OR
<a href='<%# ResolveUrl("~/a.aspx?Param=") + Eval('DataItem')%>'>

ResolveUrl  MSDN上的例子是

对了,这个方法主要是用于“用户控件”中的图片。其它地方也可能,但是本人觉得没有必要,因为~的存在。

<img src='<%= ResolveUrl("~/images/top.gif") %>'>
<td height="20" background='<%= ResolveUrl("~/images/top.gif") %>'></td>

?
1
2
3
4
5
6
7
8
9
10
11
<SPAN style= "FONT-SIZE: 14px" >$.ajax({
type: "get" ,
url: '<%=ResolveUrl("~/Handler/Test.ashx") %>' ,
dataType: "json" ,
success: function (result) {
$.each(result, function (index, data) {
});
}
});
</SPAN>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值