使用ResolveUrl设置相对路径

来源:互联网 发布:开淘宝店虚拟代理 编辑:程序博客网 时间:2024/06/05 04:23
在使用用户控件时,会碰到这样的问题,如果要设置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>
原创粉丝点击