开发者社区> 技术小胖子> 正文

asp.net母板使用注意

简介:
+关注继续查看

 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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
.NET数据库编程求索之路--6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(2)
6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(2)      【 夏春涛 email: xchuntao@163.com  blog: http://www.cnblogs.
802 0
Asp.net MVC 使用Autofac的简单使用 IOC
Ioc(Inversion of Control)或者叫依赖注入DI(Dependency Injection) 如果一个接口有两个实现类,但是在实现过程中,用到了这两个具体的实现类。 如果采用IOC,则只能是注册一个接口类型,那么如何确保IOC在合适的时候传入不同类的实例?这是我突然间想到的一个问题,希望园友们可以帮忙解答一下!     所谓IOC(控制反转)或者说是依赖注入,就是将你设计好的类交给系统去控制,而不是在你的类内部控制,控制权发生了变化,就称为控制反转。
941 0
WPF:使用Json.NET在TreeView中树形显示JSON数据
原文  WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工具 或者一个更大的开源工程(构建和分析HTTP并支持XML及JSON的树形显示): Mgen Bluckbadda   效果如下: (每一个项目中的左侧黑字是数据的值,右侧灰字是数据的类型。
1900 0
.NET数据库编程求索之路--6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(1)
6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(1)    【 夏春涛 email: xchuntao@163.com  blog: http://www.cnblogs.
787 0
.NET数据库编程求索之路--5.使用ADO.NET实现(三层架构篇-使用List传递数据)(3)
5.使用ADO.NET实现(三层架构篇-使用List传递数据)(2)   作者:夏春涛 xchunta@163.com 转载请注明来源:http://www.cnblogs.com/SummerRain/archive/2012/07/26/2610957.
519 0
使用Asp.net MVC 2.0 +.NET 4.0 出现 “从客户端 ... 中检测到有潜在危险的 Request.Form 值”错误的解决办法
我们在用Asp.net 开发 Web Form页面时,通常要提交包含Html内容的数据给后台程序代码处理时,会为页面设置 ValidateRequest="false" 属性,设置后,讨厌的 "从客户端 ... 中检测到有潜在危险的 Request.Form 值”的错误乖乖消失了。
661 0
21115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载