asp.net中的include

看过asp代码都会知道include是非常常用的,而在aspx中就很少用了。在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据).
ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成相应的函数和属性供外部的事件调用,实现完全的类化,最大程度的封装外层用户不需要了解的内部事实,使得其更加具有可维护性,也提高了数据的安全性,更利于程序的发布.
简单的东西好用,但自然也功能比较少,或者是很不完善的,我们可以自由的将某个文件的包含到指定的ASP文件之中,但是,由于彼此的数据是可以共享的,所以导致,文件的相互依赖性很高,降低了代码可读性,不利于系统的维护,同时,如果被INCLUDE的文件中如果有一个图片,并且被包含的文件与需要包含文件的文件不在同一个目录之下时,被包含的文件的图片的地址必须以需要包含文件的文件中能显示图片的地址为准,如/FILE/INDEX.ASP是主文件(需要包含文件的文件),而/FILE/INCLUDE/TITLE.ASP是被包含文件,而图片地址为/file/title.jpg此时就需要将TITLE.ASP中的图片地址改为title.jpg而不是../title.jpg,否则将无法在主文件中显示图片,超级链接也是同样的问题.
复杂的ASPX固然解决了很多的问题,如能够在控件文件中自由的设置图片的地址,无须理会引用他的文件在什么目录之下,只要在控件文件中能显示出来的东西,被引用之后依然可以被使用,这使得用户制作的控件具有更多的可重用性,而不象ASP中,对于不同目录下的文件引用相同功能的文件时需要设置两个事实上相同但是图片或者超级链接的地址不同的文件.浪费资源,也使得维护费用更高.当然这些优点也使得文件编写起来也比较麻烦,对于分析上要求有更高的归纳能力,使得控件能更广泛的使用.
所以在aspx中很少用到include,一般都是用控件来代替include.虽说aspx中已经有了控件,而且功能很强大。但是aspx依然继承了asp中include,使aspx能更要的支持原来的asp。当然aspx中用法完全和原来的asp一样。如在本页面中包含head.aspx的头文件<!-- #include file="head.aspx" -->。这样的包含就是原封不动的将head.aspx文件中的代码复制到页面中。当然你是采用codebehind的话head.aspx.cs中的代码就不会被包含进来。因为include就是一个简单的复制操作,没有控件那么智能化。显然如果你要包含一个纯静态的代码用include还是很不错的,这样比空间减少了一些不必要的处理。还有一点用include时在编辑器中也也是可视的,对布局还是有帮助的。
看一个来之网上的简单例子:
代码实现:

【上部分文件:head.aspx】





<script runat=server>

void click1 (object a,EventArgs b)

{ label1.Text=text1.Text;

label2.Text=text2.Text;}

</script>



<h1>The Softzz's New page</h1>

<p>2004-11-15</p>

Name:<asp:textbox id="text1" runat="server"/>



Pass:<asp:textbox id="text2" runat="server"

textmode="password"/>



<asp:button id="button1" runat="server"

Text="ClickMe" OnClick="click1"/>

<HR width="80%" SIZE="1">





【下部分文件:end.a】





<script runat=server>

void click2 (object a,EventArgs b)

{ label1.Text=text3.Text;

label2.Text=text4.Text;

}

</script>



<HR width="80%" SIZE="1">

Name:<asp:textbox id="text3" runat="server"/>



Pass:<asp:textbox id="text4" runat="server"

textmode="password"/>



<asp:button id="button2" runat="server"

Text="ClickMe" OnClick="click2"/>

<h5><%= DateTime.Now.ToString() %></h5>

<b><p>CopyRight: SoftZZ</p></b>





【主文件:index.aspx】

<%@ Page Language=C# %>

<center>

<form runat=server>

<!-- #include file="head.aspx" -->

<br/>

<p>This is a new test page.Please look at the info:</p>

<br/><br/>

User's Name: <b><asp:label id=label1 runat=server/></b>

<br/><br/>

User's Pass: <b><asp:label id=label2 runat=server/></b>

<br/><br/>

<!-- #include file="end.a" -->

</form>

</center>


上面的例子还能说明什么呢?

include可以把几个文件最终拼成一个文件,而作为元素的每一页,只是最后拼成的最终页的片段。

被拼的页、最终的页,均为ASP.NET代码容器,而非HTML文本。

拼页时,是按顺序的。

这些文件中的代码,在被拼时,只是普通文字,当最终拼成后,才会被检查/编译/报错/显示……

一个文件中可以多次include另一个文件。但前提是不能使“声明/定义”(标识符)部分重复(重名)。

如果在各文件中终有“runat=server”的控件,一定要注意<form runat=”server”>的始/终位置。

一页中只能有一个<form runat=”server”>,就算可以设置form的id也不能有多个。

一页中可能多次出现<script runat=”server”>,而且其都会运行在这个“最终页”显示前。
还有就是,它的运行与页面顺序无关,它是一个“代码声明块”,它的元素只会被调用后运行。

我们可以把<script runat=”server”>们,放在页面的任何地方,包括<form runat=”server”>内。

用include法引用文件,扩展名可随意。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值