浅谈ASP.NET的include的使用方法
我们学过的Code分离到不同文件的方法,主要包括:
程序集.dll、<inheritssrc>.cs、<scriptsrc>.cs、用户控件.ascx、include、Response.WriteFile()
程序集.dll:这是最高级的方法,它引用的是一个被编译为IL的DLL(程序集)文件。
<inheritssrc>.cs:用这种方法,可以先定义一个继承Page类的新类,再在ASPX/ASCX文件中加工此类。
<scriptsrc>.cs:可以把<scriptrunat=”server”>部分分离到一个新文件。
用户控件.ascx:把一段ASP.NET代码作为一个控件引入。
include:这是今天的主题,详见下。
Response.WriteFile():他只能用于引入一段“纯客户端代码(DHTML)”,扩展名可随意。
实验项目描述:
我想没有什么比一个UI更说明问题了,那么这是一个什么页面呢?
这是一个典型的“上中下”结构的网页,在实作中:“页头/页脚”可能是不变的,而中部可能是变化的。
于是在实作中,如果用“include法”我们需要把三个部分离出来,单为一个文件。
之后,可以使用一个“主文件”,分别把它们三个文件include进来。
而今天,我们只是一个实验,所以我们是这样设计的:
中部为一个“主文件”,之后把上下两部分include进来。
最后,我们还会把一些关键技术进行总结。
代码实现:
【上部分文件:head.aspx】
代码
CodehighlightingproducedbyActiproCodeHighlighter(freeware)http://www.CodeHighlighter.com/--><scriptrunat=server>
voidclick1(objecta,EventArgsb)
{label1.Text=text1.Text;
label2.Text=text2.Text;}
</script>
<h1>TheSoftzz"sNewpage</h1>
<p>2004-11-15</p>
Name:<asp:textboxid="text1"runat="server"/>
Pass:<asp:textboxid="text2"runat="server"
textmode="password"/>
<asp:buttonid="button1"runat="server"
Text="ClickMe"OnClick="click1"/>
<HRwidth="80%"SIZE="1">
【上部分文件:end.a】
代码
CodehighlightingproducedbyActiproCodeHighlighter(freeware)http://www.CodeHighlighter.com/--><scriptrunat=server>
voidclick2(objecta,EventArgsb)
{label1.Text=text3.Text;
label2.Text=text4.Text;
}
</script>
<HRwidth="80%"SIZE="1">
Name:<asp:textboxid="text3"runat="server"/>
Pass:<asp:textboxid="text4"runat="server"
textmode="password"/>
<asp:buttonid="button2"runat="server"
Text="ClickMe"OnClick="click2"/>
<h5><%=DateTime.Now.ToString()%></h5>
<b><p>CopyRight:SoftZZ</p></b>
【主文件:index.aspx】
<center> <formrunat=server> <!--#includefile="head.aspx"--> <br/> <p>Thisisanewtestpage.Pleaselookattheinfo:</p> <br/><br/> User"sName: <b><asp:labelid=label1runat=server/></b> <br/><br/> User"sPass: <b><asp:labelid=label2runat=server/></b> <br/><br/> <!--#includefile="end.a"--> </form> </center> 上面的例子还能说明什么呢? linclude可以把几个文件最终拼成一个文件,而作为元素的每一页,只是最后拼成的最终页的片段。 l被拼的页、最终的页,均为ASP.NET代码容器,而非HTML文本。 l拼页时,是按顺序的。 l这些文件中的代码,在被拼时,只是普通文字,当最终拼成后,才会被检查/编译/报错/显示…… l一个文件中可以多次include另一个文件。但前提是不能使“声明/定义”(标识符)部分重复(重名)。 l如果在各文件中终有“runat=server”的控件,一定要注意<formrunat=”server”>的始/终位置。 l一页中只能有一个<formrunat=”server”>,就算可以设置form的id也不能有多个。 l一页中可能多次出现<scriptrunat=”server”>,而且其都会运行在这个“最终页”显示前。 l我们可以把<scriptrunat=”server”>们,放在页面的任何地方,包括<formrunat=”server”>内。 l用include法引用文件,扩展名可随意。
代码
CodehighlightingproducedbyActiproCodeHighlighter(freeware)http://www.CodeHighlighter.com/--><%@PageLanguage=C#%>
关键技术·记述:
还有就是,它的运行与页面顺序无关,它是一个“代码声明块”,它的元素只会被调用后运行。相关文章