博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net母板使用注意
阅读量:6683 次
发布时间:2019-06-25

本文共 1447 字,大约阅读时间需要 4 分钟。

 1.母板中的路径问题

如果你使用了母板,同时母板里面又使用了和“路径”有关的标签,比如

头部:

<script type="text/javascript" src="scripts/jquery.js"></script>

<link type="text/css" rel="stylesheet" href="styles/common.css" />

body:

<img src="images/logo.png" alt="****有限公司" />

<a href="about/index.aspx">关于本站</a>

这时候你要注意了,你得看看你的aspx文件层次是否对应到母板里的路径结构,比如aspx存在不同的目录嵌套:

如:

根:default.aspx

下级:

根/about/default.aspx

根/job/list.aspx

。。。。

这种情况要求你的母板里路径不能是死的。

那么怎么办呢?

 

大家知道有个~/指的就是项目的跟路径位置,

但是需要服务端控件支持,而我们的<a>,<img>这里不是服务器控件,好在有个runat="server"能够转化。

于是

 

<img src="~/images/logo.png" alt="****有限公司" runat="server" />

<a href="~/about/index.aspx" runat="server">关于本站</a>

这是绝对路径方式,当然也可以用../的相对路径方式。

但是要注意服务端控件的相对路径方式相对项目本身而言的!!这样不必你关心将来的部署,只管好项目的目录层次就OK了。

 

你也可以用<asp:***>的服务器控件。

如果不想用服务器控件,也有个办法解析"~/"的,那就是Page.ResolveUrl()和Page.ResolveClientUrl()

区别是ResolveUrl解析为跟路径方式/aaa/bb/aa/**

如果网站或者测试开发中一般都是在虚拟目录里工作,所以这里不用这个版本。

下面代码:

<link type="text/css" rel="stylesheet" href="<%=Page.ResolveClientUrl("~/") %>styles/common.css" />

<script type="text/javascript" src="<%=Page.ResolveClientUrl("../") %>scripts/jquery.js"></script>

这个是../呵呵。

我问个问题,这里的"../"是相对于生成的aspx页面,还是当前这个母板文件?

答案是:相对于母板这个文件,因为这个是对应项目而言的相对路径。

<img src="../images/logo.png" alt="****有限公司" runat="server" />

<img src="../images/logo.png" alt="****有限公司"/>

这两个里面的"../"呢?

 

答案是:runat的那个服务器控件对项目而言的相对路径,下面那个是死的,对各自的aspx文件而已,实际中谨慎使用。

总之,我们应该养成母板里用到路径时而立马想到上面的灵活方式,考虑是用服务器控件还是方法解析。

 

 

 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/473621,如需转载请自行联系原作者

你可能感兴趣的文章
不用linux作为桌面的N个理由
查看>>
Rabbitmq学习之路3-cluster
查看>>
iptables实现NAT(网络搜索整理)
查看>>
关于ip地址
查看>>
ASP.NET自定义404和500错误页面
查看>>
OpenGL学习(七)纹理映射
查看>>
一些必不可少的Sublime Text 2插件
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>
41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)...
查看>>
HTTP服务器实现
查看>>
2017.03
查看>>
未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项
查看>>
思科模拟器Packet Tracer的使用
查看>>
资产-服务器变更流程图
查看>>
linux文件特殊权限及文件的访问控制列表
查看>>
目录管理和文件管理
查看>>
广播事件的两种类型。
查看>>
cmd进入控制Mysql&出现乱码的问题
查看>>