浅谈ASP.NET的include的使用方法

我们学过的Code分离到不同文件的方法,主要包括:

程序集.dll、<inherits src>.cs、<script src>.cs、用户控件.ascx、include、Response.WriteFile()

程序集.dll:这是最高级的方法,它引用的是一个被编译为IL的DLL(程序集)文件。

<inherits src>.cs:用这种方法,可以先定义一个继承Page类的新类,再在ASPX/ASCX文件中加工此类。

<script src>.cs:可以把<script runat=”server”>部分分离到一个新文件。

用户控件.ascx:把一段ASP.NET代码作为一个控件引入。

include:这是今天的主题,详见下。

Response.WriteFile():他只能用于引入一段“纯客户端代码(DHTML)”,扩展名可随意。

实验项目描述:

我想没有什么比一个UI更说明问题了,那么这是一个什么页面呢?

这是一个典型的“上中下”结构的网页,在实作中:“页头/页脚”可能是不变的,而中部可能是变化的。

于是在实作中,如果用“include法”我们需要把三个部分离出来,单为一个文件。

之后,可以使用一个“主文件”,分别把它们三个文件include进来。

而今天,我们只是一个实验,所以我们是这样设计的:

中部为一个“主文件”,之后把上下两部分include进来。

最后,我们还会把一些关键技术进行总结。

代码实现:

【上部分文件:head.aspx】

代码如下:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><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】

代码如下:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><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】

代码如下:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ 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>

关键技术·记述:

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

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

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

l 拼页时,是按顺序的。

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

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

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

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

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

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

l 用include法引用文件,扩展名可随意。

(0)

相关推荐

  • Linux vmstat命令实战详细解析

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样). 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,

  • 浅谈ASP.NET的include的使用方法

    我们学过的Code分离到不同文件的方法,主要包括: 程序集.dll.<inherits src>.cs.<script src>.cs.用户控件.ascx.include.Response.WriteFile() 程序集.dll:这是最高级的方法,它引用的是一个被编译为IL的DLL(程序集)文件. <inherits src>.cs:用这种方法,可以先定义一个继承Page类的新类,再在ASPX/ASCX文件中加工此类. <script src>.cs:可以把

  • 浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法

    在HTTP POST请求中,我们多次在View和Controller中看下如下代码: 1.View中调用了Html.AntiForgeryToken(). 2.Controller中的方法添加了[ValidateAntiForgeryToken]注解. 这样看似一对的写法其实是为了避免引入跨站请求伪造(CSRF)攻击. 这种攻击形式大概在2001年才为人们所认知,2006年美国在线影片租赁网站Netflix爆出多个CSRF漏洞,2008年流行的视频网址YouTube受到CSRF攻击,同年墨西哥一

  • 浅谈ASP.NET Core 中jwt授权认证的流程原理

    1,快速实现授权验证 什么是 JWT ?为什么要用 JWT ?JWT 的组成? 这些百度可以直接找到,这里不再赘述. 实际上,只需要知道 JWT 认证模式是使用一段 Token 作为认证依据的手段. 我们看一下 Postman 设置 Token 的位置. 那么,如何使用 C# 的 HttpClient 访问一个 JWT 认证的 WebAPI 呢? 下面来创建一个 ASP.NET Core 项目,尝试添加 JWT 验证功能. 1.1 添加 JWT 服务配置 在 Startup.cs 的 Confi

  • 浅谈ASP.NET Core静态文件处理源码探究

    前言 静态文件(如 HTML.CSS.图像和 JavaScript)等是Web程序的重要组成部分.传统的ASP.NET项目一般都是部署在IIS上,IIS是一个功能非常强大的服务器平台,可以直接处理接收到的静态文件处理而不需要经过应用程序池处理,所以很多情况下对于静态文件的处理程序本身是无感知的.ASP.NET Core则不同,作为Server的Kestrel服务是宿主到程序上的,由宿主运行程序启动Server然后可以监听请求,所以通过程序我们直接可以处理静态文件相关.静态文件默认存储到项目的ww

  • 浅谈C语言中include""与include<>的区别

    新建控制台应用程序 Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序.其中: (1)Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的.不规则形状的-它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制.Win32 Application是为你开发windows应用程序所准备的,程序以WinMain()为

  • 浅谈ASP.NETCore统一处理404错误都有哪些方式

    目录 方式一 方式二 自定义通配路由 方式三 方式四 方式五 web.config <customErrors> 节点中配置ASP.NET管道处理404错误 总结 当未找到网页并且应用程序返回 404 错误时,ASP.NET Core MVC 仅呈现通用浏览器错误页面,如下图所示 这不是很优雅,是吗?我们平时看到的404页面一般是这样的 还有这样的 试了下京东,地址不存在的时候是会重定向到首页 下面就来演示下ASP.NET Core中如何实现这种自定义的404页面处理. 新建项目 ASP.NE

  • 浅谈jQuery animate easing的具体使用方法(推荐)

    从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: •properties:一组包含作为动画属性和终值的样式属性和及其值的集合 •duration(可选):动画执行时间,其值可以是三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)

  • 浅谈django model的get和filter方法的区别(必看篇)

    django的get和filter方法是django model常用到的,搞清楚两者的区别非常重要. 为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student =

  • 浅谈jsp的C标签一般使用方法以及js接收servlet中的对象及对象数组

    由于现流行的javaWeb框架提倡前后端分离,比如在SpringMvc中已经很少写servlet的一些东西:目前 前端jsp中大多是一些纯html和js,很少用到jstl的一堆东西,后端也仅仅处理一些前端的post.get请求或页面跳转,无须以往繁琐的xml路径映射和filter过滤. 不过有时也会用到servlet作用域中的一些东西,比如某个固定的值.上下文路径等等~,不过这些东西大多数也仅限于取值而不是设置值(或对象),所以sun给了一个非常简洁的取值方式:C标签! 下面将简述下C标签的一些

  • 浅谈MySQL中group_concat()函数的排序方法

    group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就

随机推荐