关于ResolveClientUrl和ResolveUrl的使用问题

两个方法都是传递一个相对的 URL,然后返回一个相对于当前客户端浏览器的相对URL地址
但是两者的返回值,却截然不同
ResolveClientUrl返回相对于当前页面下文件的地址
ResolveUrl则返回页面所在应用程序下的相对地址
例如:
页面:~/Student/main.aspx
图像:~/Images/copy.gif
(这里~表示应用程序根目录)
使用一:
resolveClientUrl=Page.ResolveClientUrl("Images/copy.gif")
resolveUrl=Page.ResolveUrl("Images/copy.gif")
在页面main.aspx里使用copy.gif图像,则使用标题上的两种方法返回的结果如下
ResolveClientUrl:Images/copy.gif
ResolveUrl:/Student/Images/copy.gif

--------------------------------------------------------------------------------
使用二:
resolveClientUrl=Page.ResolveClientUrl("~/Images/copy.gif")
resolveUrl=Page.ResolveUrl("~/Images/copy.gif")
在页面main.aspx里使用copy.gif图像,则使用标题上的两种方法返回的结果如下
ResolveClientUrl:../Images/copy.gif
ResolveUrl:/Images/copy.gif

--------------------------------------------------------------------------------
结论
所以在使用ResolveClientUrl和ResolveUrl的时候一定要注意两者的区别
在使用相对URL地址时一定要在前面加上(~)或(~/),这样就万无一失了
不过使用这两种方法返回的物理路径(Server.MapPath),都是一样的

出自:http://www.cnblogs.com/joeliu/archive/2008/06/24/1228642.html

你可能感兴趣的:(html,浏览器)