ASP.NET 网页介绍

使用 ASP.NET 网页可以为网站创建动态内容。通过使用静态 HTML 页(.htm 或 .html 文件),服务器读取文件并将该文件按原样发送到浏览器,以此来满足 Web 请求。相比之下,当用户请求 ASP.NET 网页(.aspx 文件)时,该页则作为程序在 Web 服务器上运行。该页运行时,可以执行您的网站要求的任何任务,包括计算值、读写数据库信息或者调用其他程序。该页动态地生成标记(HTML 或另一种标记语言中的元素),并将该标记作为动态输出发送到浏览器。

本主题概述了 ASP.NET 网页在 Web 应用程序中的工作方式的基本特征。

回发和往返行程

ASP.NET 页面作为代码在服务器上运行。因此,要得到处理,页面必须配置为当用户单击按钮(或者当用户选中复选框或与页面中的其他控件交互)时提交到服务器。每次页面都会提交回自身,以便它可以再次运行其服务器代码,然后向用户呈现其自身的新版本。

ASP.NET 网页的处理循环如下:

  1. 用户请求页面。(使用 HTTP GET 方法请求页面。)页面第一次运行,执行初步处理(如果您已通过编程让它执行初步处理)。

  2. 页面将标记动态呈现到浏览器,用户看到的网页类似于其他任何网页。

  3. 用户键入信息或从可用选项中进行选择,然后单击按钮。(如果用户单击链接而不是按钮,页面可能仅仅定位到另一页,而第一页不会被进一步处理。)

  4. 页面发送到 Web 服务器。(浏览器执行 HTTP POST 方法,该方法在 ASP.NET 中称为“回发”。)更明确地说,页面发送回其自身。例如,如果用户正在使用 Default.aspx 页面,则单击该页上的某个按钮可以将该页发送回服务器,发送的目标则是 Default.aspx。

  5. 在 Web 服务器上,该页再次运行。并且可在页上使用用户键入或选择的信息。

  6. 页面执行您通过编程所要实行的操作。

  7. 页面将其自身呈现回浏览器。

只要用户在该页面中工作,此循环就会继续。用户每次单击按钮时,页面中的信息会发送到 Web 服务器,然后该页面再次运行。每个循环称为一次“往返行程”。由于页面处理发生在 Web 服务器上,因此页面可以执行的每个操作都需要一次到服务器的往返行程。

注意

ASP.NET 网页可以运行客户端脚本。客户端脚本不需要到服务器的往返行程,这对于用户输入验证和某些类型的 UI 编程十分有用。有关更多信息,请参见使用客户端脚本进行 ASP.NET 网页编程。

跨页发送

在某些情况下,您可能需要将某页发送到其他页,而不是发送到该页自身。这种行为称为“跨页发送”。例如,您可能正在创建一系列用来处理客户订单的页面。每页都可以发送到序列中的下一页。有关更多信息,请参见 ASP.NET 网页中的跨页发送。

页面生存期

与桌面应用程序中的窗体不同,ASP.NET 网页在用户使用窗体时不会启动或运行,并且仅当用户单击“关闭”按钮时才会卸载。这是由于 Web 具有断开连接的天性。浏览器从 Web 服务器请求页面时,浏览器和服务器相连的时间仅够处理请求。Web 服务器将页面呈现到浏览器之后,连接即终止。如果浏览器对同一 Web 服务器发出另一个请求,则即使是对同一个页面发出的,该请求仍会作为新请求来处理。

Web 这种断开连接的天性决定了 ASP.NET 页的运行方式。用户请求 ASP.NET 网页时,将创建该页的新实例。该页执行其处理,将标记呈现到浏览器,然后该页被丢弃。如果用户单击按钮以执行回发,将创建该页的新实例;该页执行其处理,然后再次被丢弃。这样,每个回发和往返行程都会导致生成该页的一个新实例。

有关更多信息,请参见 ASP.NET 网页。

保留页面状态

在标准的 HTTP 协议中,服务器所拥有的与页面有关的所有信息就是用户使用页面上的控件所指定的信息,因为在发送页面时,浏览器仅会将这些信息发送给服务器。其他信息(例如变量值和属性设置)将被放弃。ASP.NET 通过下列方式帮助保留其他页面信息:

  • ASP.NET 会在往返行程间保存控件设置(属性),这种行为称为保存“控件状态”。

  • ASP.NET 提供状态管理功能,以便您可以在往返行程间保存您自己的变量和应用程序特定或会话特定的信息。

  • ASP.NET 可以检测何时第一次请求页面以及何时发送页面,这使您可以相应地进行编程。例如,您可能想要在第一次显示页面(而不是在每次回发)时从数据库读取信息。

    注意

    可以将服务器配置为缓存页信息以优化页,但对于应用程序编程而言,最清晰的方法是将这些页视为在服务器完成对它们的处理后就释放它们。

有关更多信息,请参见 ASP.NET 状态管理概述。

对 ASP.NET 网页进行编程

您可以使用 .NET Framework 支持的各种语言(包括 Visual Basic、C# 和 J#)为您的 ASP.NET 网页创建服务器代码。ASP.NET 网页可以包含在浏览器中运行的客户端脚本。某些 ASP.NET 功能会生成客户端脚本,并将其插入到页面中。在这种情况下,ASP.NET 始终会生成 ECMAScript (JavaScript),以实现最佳跨浏览器功能。此外,您可以添加自己的客户端脚本以实现自定义功能。如果这样做,便可以使用与目标浏览器兼容的任何客户端脚本语言。

服务器控件

如同任何网页,ASP.NET 网页可以包含静态文本。但是,您通常会向页面添加控件,例如文本框、复选框和按钮。用户可以使用这些控件与页面交互,并在发送回页面时将信息发送到服务器。

ASP.NET 提供一个控件集合,称为“Web 服务器控件”。ASP.NET 服务器控件可能类似于对应的 HTML 窗体元素。例如,ASP.NET 的 TextBox 控件类似于 HTML <input type="text"> 标记。但是,ASP.NET 服务器控件提供的编程体验比 HTML 元素提供的更加丰富。还有一些 ASP.NET 服务器控件拥有比 HTML 元素更为广泛的功能。您可以在 ASP.NET 网页上使用的服务器控件包括:日历控件、显示列表或表格的数据绑定控件、用于向站点添加安全性的登录控件以及其他更多控件。

有关更多信息,请参见 ASP.NET Web 服务器控件。

页面和服务器控件事件

ASP.NET 网页以及网页上的控件支持事件模型(如同 Windows 窗体中的事件模型)。例如,用户单击 ASP.NET 网页上的 Button 服务器控件时,页面会发回到服务器,然后重新创建该页面,并引发一个 Click 事件。您可以将代码添加到响应此 Click 事件的页面。

初始化页面时,页面本身会引发生命周期事件(如 Page_InitPage_Load 事件),这为您提供了在启动页面时运行代码的机会。(请记住,每次往返行程都会创建页面并重新初始化页面。)每个控件都会引发它自己的事件。按钮控件引发一个 Click 事件,复选框和单选按钮控件引发一个 CheckedChanged 方法,而列表框和下拉列表控件则引发一个 SelectedIndexChanged 事件。某些控件(如 Calendar 控件)引发的事件比简单的 Click 事件更抽象。例如,用户导航至不同的月份时,Calendar 控件引发一个 VisibleMonthChanged 事件。

大多数 ASP.NET 服务器控件仅支持很少的几个可以在服务器代码中处理的事件。要处理某个事件,页面必须执行一次往返行程,以便用户的选择可以发送到页面以待处理。服务器控件不公开诸如 onmouseover 之类的高频率事件,因为每次引发此类事件时,都会发生到服务器的另一个往返行程,这将显著影响页面中的响应时间。但是,您可以将 ASP.NET 服务器控件配置为引发客户端事件,例如 onmouseover。在这种情况下,控件不发送回服务器,因而由您创建客户端脚本来响应事件。

有关创建和使用事件及事件处理程序的更多信息,请参见 ASP.NET 网页中的服务器事件处理。

浏览器兼容性

由于 ASP.NET 网页处理发生在 Web 服务器上,因此 ASP.NET 网页与任何浏览器或移动设备兼容。网页自动呈现与浏览器兼容的正确标记(XHTML 或其他标记语言)以实现某些功能,例如样式和布局。您也可以使用专门向特定设备(例如移动电话)呈现输出而设计的控件来创建网页。有关更多信息,请参见创建 ASP.NET 移动 Web 应用程序。

请参见

ASP.NET 网页介绍相关推荐

  1. 构建安全的 ASP.NET 网页和控件

    本页内容 本模块内容 目标 适用范围 如何使用本模块 威胁和对策 设计注意事项 输入验证 跨站点脚本 身份验证 授权 模拟 敏感数据 会话管理 参数处理 异常管理 审核和日志记录 小结 其他资源 本模 ...

  2. razor html帮助器,在 ASP.NET 网页(Razor)网站中创建和使用帮助器 | Microsoft Docs

    在 ASP.NET 网页(Razor)网站中创建和使用 Helper 02/17/2014 本文内容 本文介绍如何在 ASP.NET 网页(Razor)网站中创建帮助程序. 帮助器是一种可重用的组件, ...

  3. 【转】ASP六大对象介绍

    ASP六大对象介绍 作者: 来源:playasp.com 时间:2004-2-10 点击: 345 Application对象 Application对象是个应用程序级的对象,用来在所有用户间共享信息 ...

  4. php动态网站开发 唐四薪 答案,ASP动态网页设计与Ajax技术 (唐四薪谭晓兰) pdf扫描版_IT教程网...

    <asp动态网页设计与ajax技术>全面介绍了asp动态网页设计与ajax技术,采用asp作为开发环境结合基于jquery的ajax技术,显著降低了ajax的入门难度.在叙述有关原理时安排 ...

  5. asp mysql dw_dw怎么制作asp动态网页之向数据库增加记录?

    下面给大家介绍一下用dreamweaver制作asp动态网页时如何向数据库里边添加记录.前提是已经搭建好asp的运行环境IIS,并且用数据源连接了数据库,具体方法见我分享的前几个百度经验.我以创建一个 ...

  6. asp动态网页设计选用服务器,ASP动态网页设计

    摘要: <ASP动态网页设计>语言规范,内容新颖,编排合理,每一章开头对本章内容做简要介绍,同时提出学习目标与重点,方便教师组织教学与学生自学.ASP是当今流行的Web应用程序开发技术之一 ...

  7. doc2html asp,用asp实现网页调用doc附Response.ContentType 详细列表

    用asp实现网页调用doc附Response.ContentType 详细列表 发布时间:2016-06-18 来源: 点击: 次 微软有篇文章:http://support.microsoft.co ...

  8. ASP动态网页(网站)设计教程

    ASP动态网页(网站)设计教程 文件名 大小 ASP获取时间函数大全 35KB 项目6 ASP数据表数据操作功能设计.pptx 3.34 MB 项目5 WEB数据库与数据库管理.pptx 3.34 M ...

  9. 在 ASP.NET 网页中不经过回发而实现客户端回调

    一.使用回调函数的好处 在 ASP.NET 网页的默认模型中,用户会与页交互,单击按钮或执行导致回发的一些其他操作.此时将重新创建页及其控件,并在服务器上运行页代码,且新版本的页被呈现到浏览器.但是, ...

最新文章

  1. 信标组的磁标安装长度
  2. 涨知识!参加过将近三十届广交会的老鸟总结!
  3. Android(java)学习笔记171:服务(service)之绑定服务调用服务里面的方法
  4. 算法复习第五章贪心法
  5. 2016年下半年勒索软件数量翻倍
  6. Multisim破解教程
  7. SDL —— SDL_mixer
  8. [词性] 十五、介词 5 [ by ] [ during ] [ for ] [ from ]
  9. 小程序_图片剪切功能(支持多图片上传)
  10. MFC文本编程--退格键的操作
  11. 标准柯西分布_柯西分布没有数学期望
  12. 2023年全国最新工会考试精选真题及答案32
  13. 卡通风珍惜粮食人人有责节约粮食文明就餐从我做起通用PPT模板
  14. 字符类型与Unicode 编码
  15. office365中word打开时显示“word无法启动转换器RECOVR32.CNV”的解决办法
  16. forward函数——浅学深度学习框架中的forward
  17. 微信 H5 页面前端开发,大多数人都会遇到的几个兼容性坑
  18. [转清华]清华,曾经是多少莘莘学子梦想中的学府……张琳
  19. OpenCV+face++实现实时人脸识别解锁功能
  20. 微信支付APP支付服务商模式

热门文章

  1. 基于 MVC 模型框架之:SpringMVC
  2. 怎么使用python检测代理IP是否有效
  3. windows 远程连接mstsc到远程主机报:内部错误10010
  4. 在大数据里读懂京东,你东哥为啥要裁员降薪?
  5. 八叉树 java_图像八叉树量化讲解 Java版本
  6. PHP连接MySQL函数总结
  7. Java迭代器初步探究
  8. 2019最好用的自动化测试工具Top 10,果断收藏!
  9. 闪修侠存在违规行为遭通报,创始人兼CEO王源曾两次被限制高消费
  10. 什么是redis,redis能做什么,redis的应用场景【转】