ASP.NET 4.0 网站建设基础教程
前言:为什么学习 ASP.NET 4.0?
虽然 ASP.NET 4.0 是一个较老的版本(发布于 2010 年),但它依然是许多现有企业级项目的基础,理解其核心概念对于维护旧系统至关重要,更重要的是,ASP.NET 4.0 的许多核心思想(如 Web Forms 生命周期、服务器控件、状态管理等)在后续版本(包括现代的 ASP.NET Core)中都有体现或借鉴,学习它是进入 Web 开发领域的一个绝佳起点。

本教程将使用 Web Forms 模型,这是 ASP.NET 4.0 最主流的开发模式。
第一部分:环境搭建
在开始编码之前,我们需要安装必要的开发工具。
安装 Visual Studio 2010/2012/2025
- 推荐版本:Visual Studio 2010 Ultimate/Professional 或 Visual Studio 2012/2025 (这些版本对 ASP.NET 4.0 提供了最好的支持)。
- :安装时,请确保勾选以下组件:
- Microsoft ASP.NET (核心框架)
- ASP.NET MVC (可选,但推荐了解)
- SQL Server Express (用于本地数据库)
创建第一个 ASP.NET 网站
- 打开 Visual Studio。
- 选择 文件 -> 新建 -> 网站。
- 在模板窗口中,选择 Visual C# -> ASP.NET -> ASP.NET 网站空 Web 应用程序。
- 为什么选择“空 Web 应用程序”? 这会创建一个最干净的项目结构,避免生成大量默认文件,有助于我们更好地理解核心概念。
- 为网站选择一个位置和名称(
MyFirstWebSite)。 - 点击 确定。
你的解决方案资源管理器中应该只有一个文件:web.config,这是 ASP.NET 网站的配置文件。
第二部分:核心概念
一个 ASP.NET 网站由两种主要文件组成:

- aspx 文件:Web 窗体,是用户在浏览器中直接看到和交互的页面。
Default.aspx。 - aspx.cs 文件:代码隐藏文件,包含 C# 代码,用于处理页面的逻辑、数据和事件。
Default.aspx.cs。
一个简单的 "Hello, World!" 示例
-
在解决方案资源管理器中,右键点击项目 -> 添加 -> 新建项。
-
选择 Web 窗体,命名为
Default.aspx,然后点击 添加。 -
打开
Default.aspx文件,切换到 源 视图,你会看到类似下面的 HTML 代码:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyFirstWebSite._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html> -
在
<div>和</div>标签之间,添加一个服务器控件Label:
(图片来源网络,侵删)<asp:Label ID="lblMessage" runat="server" Text="Hello, World!"></asp:Label>
-
按
F5运行你的网站,浏览器会打开,并显示 "Hello, World!"。
分析:
<%@ Page ... %>:页面指令,告诉编译器这个页面使用 C# 语言,其逻辑代码在Default.aspx.cs文件中。<form id="form1" runat="server">:这是一个服务器端表单,所有服务器控件都必须放在这个表单内部。<asp:Label ... />:这是一个服务器控件。runat="server"属性表明它由服务器端代码处理,而不仅仅是静态文本。
第三部分:服务器控件
服务器控件是 ASP.NET Web Forms 的核心,它们是服务器端可编程的 HTML 元素。
常用服务器控件
| 控件类型 | 示例控件 | 用途 |
|---|---|---|
| 文本输入 | TextBox |
提供单行、多行或密码输入框。 |
| 按钮 | Button, LinkButton, ImageButton |
触发服务器端事件。 |
| 显示 | Label, Literal |
在页面上显示文本。Label 会渲染成 <span>,Literal 直接输出文本。 |
| 选择 | DropDownList, ListBox, RadioButtonList, CheckBoxList |
提供单选或多选列表。 |
| 容器 | Panel, PlaceHolder |
用于组织和显示其他控件的容器。 |
| 数据 | GridView, Repeater, DataList |
用于显示和操作数据源中的数据。 |
控件事件与代码隐藏
让我们创建一个简单的登录页面来演示事件处理。
-
设计页面 (
Login.aspx)<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="MyFirstWebSite.Login" %> <!DOCTYPE html> <html> <head runat="server"> <title>登录页面</title> </head> <body> <form id="form1" runat="server"> <div> <h3>用户登录</h3> <p> <asp:Label ID="lblUsername" runat="server" Text="用户名:"></asp:Label> <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox> </p> <p> <asp:Label ID="lblPassword" runat="server" Text="密码:"></asp:Label> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> </p> <p> <asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" /> </p> <asp:Label ID="lblStatus" runat="server" ForeColor="Red"></asp:Label> </div> </form> </body> </html> -
编写后台代码 (
Login.aspx.cs)双击设计视图中的“登录”按钮,Visual Studio 会自动在
Login.aspx.cs文件中创建btnLogin_Click事件处理程序,填入以下代码:using System; public partial class Login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 页面首次加载时执行的代码 } protected void btnLogin_Click(object sender, EventArgs e) { // 获取用户输入 string username = txtUsername.Text; string password = txtPassword.Text; // 简单的验证逻辑 if (username == "admin" && password == "123456") { // 登录成功,重定向到欢迎页面 Response.Redirect("Welcome.aspx"); } else { // 登录失败,显示错误信息 lblStatus.Text = "用户名或密码错误!"; } } } -
创建欢迎页面 (
Welcome.aspx) 在Welcome.aspx中放一个Label控件,用于显示欢迎信息。<asp:Label ID="lblWelcome" runat="server" Text=""></asp:Label>
在
Welcome.aspx.cs中,在Page_Load事件中设置文本:protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) // 确保只在首次加载时执行 { // 从 Session 中获取用户名并显示 string username = Session["Username"] as string; lblWelcome.Text = "欢迎您, " + username + "!"; } }
第四部分:状态管理
Web 是一种无状态协议,这意味着服务器默认不记得之前的请求,ASP.NET 提供了多种机制来在请求之间维护状态。
