1. 浅出:理解基本概念 - 不用写代码,先搞懂 HTML 和 ASP 是什么,它们的关系是怎样的。
  2. 深入:动手实践 - 从零开始,创建一个简单的 ASP.NET Web Forms 项目,并实现一个动态功能。
  3. 总结与展望 - 回顾要点,并了解这项技术在今天的定位。

第一部分:浅出 - 理解基本概念

想象一下你要盖一栋房子:

深入浅出html asp网页制作
(图片来源网络,侵删)

HTML (网页的“骨架”和“装修”)

  • 是什么? HTML (HyperText Markup Language) 是网页的骨架,它定义了网页的结构和内容,比如哪里是标题,哪里是段落,哪里是图片,哪里有输入框。
  • 好比什么? 就像房子的钢筋水泥结构和砖块,它搭建了房子的基本框架和房间布局。
  • 特点: HTML 是静态的,你写好是什么样子,浏览器就显示什么样子,它不会自己“思考”或“变化”,一个 HTML 文件里的名字永远是“张三”,不会自动变成你登录的用户名。

简单示例:

<!DOCTYPE html>
<html>
<head>我的主页</title>
</head>
<body>
    <h1>欢迎,访客!</h1>
    <p>这是一个静态的HTML页面。</p>
    <p>当前时间:2025年10月27日</p> <!-- 这个时间写死在代码里了 -->
</body>
</html>

ASP (网页的“大脑”和“管家”)

  • 是什么? ASP (Active Server Pages) 是一种服务器端技术,它的核心作用是在服务器上执行代码,然后生成 HTML 内容,再发送给用户的浏览器。
  • 好比什么? 就像房子的智能家居管家,当你按下一个开关(浏览器请求),管家(服务器上的ASP代码)会根据你的指令(显示我的个人信息”),去数据库或逻辑中处理,然后整理好一个房间(生成HTML页面)让你看到。
  • 特点: ASP 是动态的,它可以在服务器上运行逻辑,比如读取数据库、判断用户身份、计算数据、获取当前时间等,浏览器收到的仍然是 HTML,但这个 HTML 是“现场制作”的,可以根据不同情况生成不同内容。

关键区别:

  • HTML浏览器里被“解释”和“显示”。
  • ASP服务器里被“执行”和“处理”,生成 HTML 后再发送给浏览器。

ASP.NET (更强大的“管家团队”)

现在我们通常说的“ASP”,很多时候指的是 ASP.NET,这是微软推出的一个更完整、更强大的 Web 应用开发框架,ASP.NET Web Forms 是其中一种经典的开发模式,它完美地结合了 HTML 和 C# (一种编程语言)。


第二部分:深入 - 动手实践

我们将创建一个最经典的例子:一个可以显示当前时间的动态网页。

深入浅出html asp网页制作
(图片来源网络,侵删)

准备工作:开发环境

你需要安装 Visual Studio,对于初学者,强烈推荐免费的 Visual Studio Community 版本。

步骤 1:创建项目

  1. 打开 Visual Studio。
  2. 点击 “创建新项目” (Create a new project)。
  3. 在模板搜索框中输入 ASP.NET Web Forms,然后选择它,点击 “下一步”。
  4. 给你的项目起个名字,HelloASP,然后点击 “创建”。
  5. 在下一个窗口中,选择 “空” (Empty) 模板,然后点击 “创建”。

Visual Studio 会为你创建一个基本的项目结构,里面会有一个 Web.config 文件和一些其他配置文件。

步骤 2:创建 ASPX 页面 (HTML + ASP 的结合体)

在 ASP.NET Web Forms 中,页面文件的后缀是 .aspx,这个文件既包含 HTML,也包含可以执行的 C# 代码。

  1. 在 “解决方案资源管理器” 中,右键点击你的项目名称。
  2. 选择 “添加” -> “新建项”。
  3. 选择 “Web 窗体”,命名为 Default.aspx,然后点击 “添加”。

步骤 3:编写代码

打开 Default.aspx 文件,你会看到类似这样的代码:

深入浅出html asp网页制作
(图片来源网络,侵删)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HelloASP.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />动态时间页面</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <!-- 这里是我们要显示内容的地方 -->
        </div>
    </form>
</body>
</html>

代码解释:

  • <%@ Page ... %>:这是页面指令,告诉服务器这个页面使用 C# 语言,并且后台逻辑代码在 Default.aspx.cs 文件中。
  • <html>, <head>, <body>:这些都是标准的 HTML 标签,负责页面的基本结构。
  • <form runat="server">:这是 ASP.NET Web Forms 的一个核心标记,它告诉服务器,这个表单内的所有控件(比如按钮、文本框)都由服务器来管理。

步骤 4:添加动态内容

我们想在页面上显示服务器上的当前时间,最简单的方法是使用 ASP.NET 的 服务器控件Label

  1. <div> 标签内,拖拽一个 Label 控件进去,或者直接在 HTML 视图中输入:

    <form id="form1" runat="server">
        <div>
            <asp:Label ID="lblTime" runat="server" Text="等待加载..."></asp:Label>
        </div>
    </form>
    • asp:Label:定义一个标签控件。
    • ID="lblTime":给这个控件一个唯一的身份ID,方便我们在后台代码中找到它。
    • runat="server":再次强调,这是一个服务器控件。
    • Text="...":标签的初始文本。
  2. 编写后台代码:双击 Default.aspx 页面空白处,Visual Studio 会自动切换到 Default.aspx.cs 文件,这是专门写 C# 逻辑的地方。

  3. Page_Load 事件中写入代码:

    using System;
    namespace HelloASP
    {
        public partial class Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                // 检查是不是第一次加载页面,避免重复执行
                if (!IsPostBack)
                {
                    // 获取当前服务器时间
                    DateTime now = DateTime.Now;
                    // 将格式化后的时间字符串赋值给 lblTime 控件的 Text 属性
                    lblTime.Text = "当前服务器时间是:" + now.ToString("yyyy-MM-dd HH:mm:ss");
                }
            }
        }
    }

代码解释:

  • Page_Load:这是一个页面生命周期事件,每当这个页面被请求和加载时,这段代码就会自动执行。
  • DateTime.Now:获取服务器当前的日期和时间。
  • lblTime.Text = ...:这是关键!我们找到了前台那个 IDlblTimeLabel 控件,并修改了它的 Text 属性,服务器会把这个修改后的 HTML 发送给浏览器。

步骤 5:运行和查看效果

F5 键启动调试,Visual Studio 会启动一个内置的浏览器,并打开你的页面。

你将看到:

当前服务器时间是:2025-10-27 10:30:15

神奇的地方来了:

  1. 查看源代码:在浏览器上右键,选择“查看网页源代码”,你会发现,源代码里并没有 <asp:Label> 标签,而是这样的:

    <form name="form1" method="post" action="Default.aspx" id="form1">
    <div>
        <span id="lblTime">当前服务器时间是:2025-10-27 10:30:15</span>
    </div>
    </form>

    服务器已经把 asp:Label 控件转换成了浏览器能识别的普通 HTML <span> 标签,并把计算好的时间填充了进去。

  2. 刷新页面:再次刷新页面,你会看到时间会更新!因为每次刷新,服务器都会重新执行 Page_Load 里的代码,获取一个新的 DateTime.Now

至此,你成功创建了一个结合了 HTML (页面结构) 和 ASP.NET (服务器逻辑) 的动态网页!


第三部分:总结与展望

  • HTML 是基础,负责页面的结构和静态内容
  • ASP.NET (Web Forms) 是技术,它允许你在服务器上用 C# 编写动态逻辑,然后生成 HTML 返回给浏览器。
  • 工作流程:用户请求 ASPX 页面 -> 服务器执行 C# 代码 -> 服务器生成最终的 HTML -> 浏览器接收并显示 HTML。
  • 核心优势:将复杂的业务逻辑和前端页面分离,开发者可以专注于各自擅长的领域,提高了开发效率和可维护性。

虽然 ASP.NET Web Forms 是一个非常经典且强大的技术,并且在很多遗留系统中仍在稳定运行,但对于新项目,微软目前更推荐使用 ASP.NET Core

  • ASP.NET Core 的优势
    • 跨平台:可以在 Windows, Linux, macOS 上运行。
    • 高性能:性能远超传统的 Web Forms。
    • 更现代:支持 MVC (Model-View-Controller) 和 Razor Pages 等更灵活的开发模式,代码更简洁,更符合现代 Web 开发的理念。
    • 开源:完全开源,社区活跃。

学习路径建议:

  1. 打好基础:务必精通 HTML, CSS, JavaScript,这是所有 Web 开发的基石。
  2. 学习后端逻辑:选择一门后端语言,如 C# (配合 .NET) 或 Python (配合 Django/Flask) 等。
  3. 选择框架
    • 如果你的项目是维护旧的 ASP.NET Web Forms 系统,或者你需要快速开发企业级内部系统,Web Forms 依然是可选方案。
    • 如果你要开始一个全新的项目,强烈建议直接学习 ASP.NET Core,特别是 Razor PagesMVC,它们是未来的方向。

希望这篇“深入浅出”的教程能帮助你理解 HTML 和 ASP 的世界!动手实践是最好的老师,快去创建你的第一个 ASP.NET 页面吧!