ASP.NET 是 .NET 技术的一部分,用于编写功能强大的客户端/服务器 Internet 应用程序。它允许您创建动态 HTML 页面。ASP.NET 是旧的 ASP 技术(活动服务器页面)和 .NET Framework 相结合的结果。
它包含许多现成的控件,您可以使用它们快速创建交互式网站。您还可以使用其他网站提供的服务。
此前,ASP.NET技术分为两个领域:Web Forms和Model-View-Controller (MVC)。现在微软开发人员已经删除了很多重复的功能,留下了单一的ASP.NET Core MVC 编程模型。
构建 MVC 应用程序的范例具有三个组件:模型、视图和控制器。
让我们仔细看看它们:
- 模型是应用程序的一个组件,负责与数据源(数据库、文件系统)交互。
- 视图——负责显示用户界面的组件。
- 控制器是一个描述应用程序逻辑的组件,换句话说,就是处理 Web 应用程序的 HTTP 请求的逻辑。控制器与影响视图的模型对象交互。
ASP.NET 页面生命周期
作为这篇 ASP.Net 文章的一部分,我们将了解页面处理的阶段顺序:
- 页面请求发生在请求页面时,服务器检查是否是第一次请求。如果是,则创建页面,处理响应并将其发送给用户。如果该页面不是第一次请求,则检查缓存。如果该页面存在于缓存中,则将保存的响应发送给用户。
- 启动页面,在这个阶段,Request和Response对象被创建。Request 对象用于存储请求页面时发送的信息。Response 对象用于存储发送回用户的信息。
- 页面初始化。这是网页上所有控件初始化的地方。
- 页面加载。该页面已加载所有默认值。
- 验证。在某些情况下,可以为某些表单指定验证。例如,可以请求确认列表项包含一组特定值。
- 如果不满足条件,加载页面时应显示错误。
- 如果再次加载页面,则会发生事件重新处理。这是为了响应之前的事件而发生的。如果用户单击页面上的提交按钮,则会再次显示相同的页面。然后调用重复事件处理程序。
- 页面的呈现发生在响应发送给用户之前。保存有关表单的所有信息,并将结果以完整网页的形式发送给用户。
- 卸货。页面提交给用户后,不再需要将Web表单对象存储在内存中。因此,卸载过程涉及从内存中删除所有不必要的对象。
项目内部结构
创建后,项目最初已经具有三个默认页面:Default、About和Contact。
每个页面由三个文件组成:
Page.aspx
– 包含特定页面的 HTML 标记;Page.aspx.cs
– 负责特定页面的逻辑;Page.aspx.designer.cs
– Page.aspx 和 Page.aspx.cs 之间的桥梁。
文件的代码About.aspx
:
1
2
3
4
5
6
7
|
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="TutWebApplication.About" %> < asp:Content ID = "BodyContent" ContentPlaceHolderID = "MainContent" runat = "server" > < h2 ><%: Title %>.</ h2 > < h3 >Your application description page.</ h3 > < p >Use this area to provide additional information.</ p > </ asp:Content > |
About.aspx
仅包含完成页面的一个片段。主要部分位于Site.Master
或Site.Mobile.Master
文件中。
要测试和运行项目,请按 IIS Express 或传统的F5键。
之后,所有文件都将被编译,并且站点将在默认浏览器中通过http://localhost:5000打开(端口号可能不同)。
如何在 ASP.NET Web 窗体中创建页面
首先,决定将在哪个目录中创建页面。位于一个目录中的所有文件都被视为一个项目。启动您选择的开发环境。
选择“文件”-“新建”-“网站”菜单项。将出现一个对话框。在其中指定项目名称并选择 C# 编程语言。
默认情况下,项目是在文件系统上创建的。您也可以选择在 HTTP 或 FTP 服务器上创建它。您还可以随时通过单击“解决方案资源管理器”按钮将项目从文件系统复制到服务器。
要创建其他页面,请右键单击项目名称,然后从上下文菜单中选择添加 -> Web 表单(您可以为 Web 表单取不同的名称,在本例中为名为“News”的新表单):
将创建一个包含以下代码的页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="News.aspx.cs" Inherits="WebFormsApp1.News" %> <!DOCTYPE html> < html xmlns = "https://www.w3.org/1999/xhtml" > < head runat = "server" > < title >News</ title > // Add the title of the page </ head > < body > < form id = "news" runat = "server" > < div > Some information </ div > </ form > </ body > </ html > |
我们来看看这个页面。<%@ Page Language = "C #"%>
。该<%
标记始终用于解释 ASP 代码。Page 指令始终出现在 aspx 页面上。
它的Language
属性表明该页面的脚本将使用 C# 编程语言。CodeFile
是代码隐藏文件的名称。Inherits
是此文件中定义的类,页面类继承自该类。
该页面没有标签,因此不会显示文件<asp:Content>
中的模板。Site.Master
要更改此设置,您可以从 复制代码About.aspx
。
如何在页面中插入 HTML 代码
要将字符串和标签一起传递给 HTML 代码,您需要使用的不是通常的string
类型,而是HtmlString
:
1
|
HtmlString PageContent = new HtmlString( "<p>Something!</p>" ); |
如何向菜单添加链接
菜单位于Site.Master
:
1
2
3
4
5
6
7
|
< ul class = "nav navbar-nav" > < li >< a runat = "server" href = "~/" >Home</ a ></ li > < li >< a runat = "server" href = "~/About" >About</ a ></ li > < li >< a runat = "server" href = "~/Contact" >Contact</ a ></ li > < li >< a runat = "server" href = "~/News" >News</ a ></ li > // adding link to menu </ ul > |
结论
在本文中,我们介绍了:创建 ASP.NET 站点、创建新页面、在菜单中添加页面链接等。要了解有关 ASP.NET 的更多信息,您可以查看他们的官方文档。