【ASP.NET】使用母版页后如何让内容页来引用js或css。。。

JavaScript046

【ASP.NET】使用母版页后如何让内容页来引用js或css。。。,第1张

.net中提供的母版页大大的方便了制作网页时候使得页面共有元素统一化,给维护和修改提供了相当的便利。但是有一个让人很恼火的缺点就是母版页中才能有<head元素,使得很多情况下子页面引用css或者js就不那么方便。当然,你可以把css和js的引用全部放到母版页中,但是这样的做法会使得<head非常臃肿,是相当不理想的做法。这里介绍两种简单的方法,希望可以给碰到这个问题的朋友一点帮助,当然,如果您有更方便的做法,希望您可以告诉我,非常感谢呵呵。。。

第一种方法:

使用<asp:ScriptManagerProxy元素

直接看代码段:<%--这种方法是利用了ScriptManagerProxy控件中Scripts来引用js--%<asp:ScriptManagerProxyID=aarunat=server<Scripts<asp:ScriptReference

Path=

My97DatePicker/WdatePicker.js/</Scripts</asp:ScriptManagerProxy

这里之所以要使用ScriptManagerProxy是因为使用母版页时候要保证ScriptManager元素只有唯一一个,具体的就不多说了,MSDN查一下就明白了。

这种方法我个人觉得要稍微麻烦点(要敲多点代码),而且只能引用js,css无效。

---------------------------------------------我是华丽的分割线-------------------------------------

第二种方法:

使用<asp:ContentPlaceHolder元素

母版页中代码段:<headrunat=server<titleTechMan</title<metahttp-equiv=Content-Typecontent=text/html

charset=utf-8/<metaname=keywordscontent=$页面关键字$/<metaname=descriptioncontent=$页面描述$/<asp:ContentPlaceHolderID=cphHeadrunat=server</asp:ContentPlaceHolder</head

内容页中代码段:<%--这种是利用ContentPlaceHolder的方法,这种方法更加自由,还可以自由引用css--%<asp:ContentID=con2runat=serverContentPlaceHolderID=cphHead<scripttype=text/javascriptsrc=My97DatePicker/WdatePicker.js</script<linkhref=css/site.cssrel=stylesheettype=text/css/</asp:Content

这种方法简单实用,而且js和css都能很好的引用,利用这种做法可以很简单的解决很多类似问

/开头的地址,表示是从网站根目下开始计算。如果你是想要相对于当前页面进地相对引用,你把前面的/去掉,也就是说<script type="text/javascript" src="js/jquery.js"></script>这样就可以了。还有,那个ResolveUrl是一个很标准的ASP.NET的写法,在以后你有多个页面并且在不同的层级下引用,你就知道用这个的好处了。

还有,直接拖js文件过来也是很好的方案,但需要注意别在MasterPage中使用,不然容易出现问题