您的位置:首页 > 编程语言 > ASP

Asp.Net中解决图片绝对路径问题

2009-04-12 18:48 531 查看
Asp.Net在页面设计上如果用的Master模板最怕的就是图片的路径,不同深度引用总会出现图片消失等问题!一些控件的使用也会出现同等的问题。于是想来想去,终于想到了一个方法。

对于图片,我们可以在后台定义一个路径,路径的格式为"~/image/test.jpg"然后前台引用。

注意:“~”只可以在服务端使用。

例如:

text.aspx.cs里面

public string imgpath="~/image/test.jpg";

text.aspx里面

<asp:Image ID="Image1" runat="server" ImageUrl='<%= imgpath%>' />

如果是div或者其他什么的背景:

我们可以在更目录下建一个App_Themes文件夹,然后把自己写的css放在里面,图片相对与该文件就好。

以后在不同的地方都加载该css就可以了。

PS:提到路径我就在多一句,对于控件的使用,起cs里面的路径是相对于控件所在的文件夹,而不是使用该控件的页面所在的文件夹

比如,控件1后台有个Image1.ImageUrl="images/test.jpg",控件1在“include”文件夹,而使用该控件的页面在根目录下,那图片的路径指在include/images.test.jpg,而不是根目录的images.test.jpg

补充:(补充内容来自“卑微的程序员”http://jy147154.bokee.com/view.b?diaryId=16134580)

.asax 的路径问题就如同 ASP 的 include 进来的文件的路径问题一样,两个字:麻烦。

。aspx页面可以这样引用asax
<%@ register src="~/UserControls/xxx.ascx" tagname="myuc" tagprefix="uc1" %>
~/ 的意思是相对站点的虚拟根路径

对于.asax内部的如图片、连接等:
如果是Web空件如,HyperLink,Image,路径设置同上:
<asp:hyperlink navigatorurl="~/yourfolder/yourpage.aspx" runat = server />

如果是静态HMTL的如<a/> <img/>等标记:

方法1:
加上runat=server使之成为HTML服务器空件:
<img src="~/images/myimg.gif"/>
方法2:动态过程绝对路径
<img src="<% =HttpContext.Current.Request.ApplicationPath %>/images/myimg.gif">

记住 ~/ 仅对 ASP.NET 的服务器空件起作用就可以了。

1."<% =HttpContext.Current.Request.ApplicationPath %>/

2.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)

3.runat=server
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐