母版页和内容页的使用

article/2025/8/16 22:36:39
虽然母版页和内容页功能强大,但是其创建和应用过程并不复杂。本节和下一节将以创建如图 1 所示示例为例,向读者详细介绍,使用 Visual Stuido 2005 创建母版页和内容页的方法以及相关知识。本节的重点是创建母版页的方法。

母版页中包含的是页面公共部分,即网页模板。因此,在创建示例之前,必须判断哪些内容是页面公共部分,这就需要从分析页面结构开始。图 1 所示显示的是一 个页面截图。在下文中,暂称该页面名为 Index.aspx ,并且假设其为某网站中的一页。通过分析可知,该页面的结构如图 5 所示。

5 页面结构图

   页面 Index.aspx 4 个部分组成:页头、页尾、内容 1 和内容 2 。其中页头和页尾是 Index.aspx 所在网站中页面的公共部分,网站中许多页 面都包含相同的页头和页尾。内容 1 和内容 2 是页面的非公共部分,是 Index.aspx 页面所独有的。结合母版页和内容页的有关知识可知,如果使用母版页 和内容页来创建页面 Index.aspx ,那么必须创建一个母版页 MasterPage.master 和一个内容页 Index.aspx 。其中母版页包含 页头和页尾等内容,内容页中则包含内容 1 和内容 2

  
这个专题中主要讲解的是 MasterPage ,给刚刚建立的工程添加一个 MasterPage



MasterPage
master 为后缀名,我们刚刚建立了一个 MasterPage.master 文件,该文件有如下内容:
 1  <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
 2   
 3    
 4   
 5   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 6   
 7    
 8   
 9   <html xmlns="http://www.w3.org/1999/xhtml" >
10   
11   <head runat="server">
12   
13       <title>Untitled Page</title>
14   
15   </head>
16   
17   <body>
18   
19       <form id="form1" runat="server">
20   
21       <div>
22   
23           <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
24   
25           </asp:contentplaceholder>
26   
27       </div>
28   
29       </form>
30   
31   </body>
32   
33   </html>
34 
粗看还以为这是一个普通的 aspx 页面,其实不是,最上面的 <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
表面明这是一个 master 文件,同时在页面中你可以看到用 <div> 包裹着的一个 asp 控件
Contentplaceholder ,这个叫 内容占位符 ,他的作用就是先通过 div 或者 table 进行分割,然后 霸占 一个地方,声明此地有 了,不过主人不是 Contentplaceholder ,而是后面会说道到的 Content 控件。
注意: <div> 一般通过 css 样式表来控制页面的布局,如 cnblogs 里面的很多皮肤都是如此,为了不把问题复杂化,我还是用 table 。在 Design 状态下画出如下表格 (vs.net 2005 Design 功能真的好用很多 ^_^)





这是一个很标准的网页页面布局,下一步就把 Contentplaceholder 放进去 占地盘 ”“



放完后我们把各个部分的 ContentPlaceHolder 重新命名一次,更改后的代码如下:
 1  <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
 2   
 3    
 4   
 5   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 6   
 7    
 8   
 9   <html xmlns="http://www.w3.org/1999/xhtml" >
10   
11   <head runat="server">
12   
13       <title>Untitled Page</title>
14   
15   </head>
16   
17   <body>
18   
19       <form id="form1" runat="server">
20   
21      <table width="60%">
22   
23               <tr>
24   
25                   <td colspan="3" height="80">
26   
27                       <asp:ContentPlaceHolder ID="TopContent" runat="server">
28   
29                       </asp:ContentPlaceHolder>
30   
31                   </td>
32   
33               </tr>
34   
35               <tr>
36   
37                   <td height="300" width="25%">
38   
39                       <asp:ContentPlaceHolder ID="LeftContent" runat="server">
40   
41                       </asp:ContentPlaceHolder>
42   
43                   </td>
44   
45                   <td>
46   
47                       <asp:ContentPlaceHolder ID="CenterContent" runat="server">
48   
49                       </asp:ContentPlaceHolder>
50   
51                   </td>
52   
53                   <td width="25%">
54   
55                       <asp:ContentPlaceHolder ID="RightContent" runat="server">
56   
57                       </asp:ContentPlaceHolder>
58   
59                   </td>
60   
61               </tr>
62   
63               <tr>
64   
65                   <td colspan="3" style="height: 80px">
66   
67                       <asp:ContentPlaceHolder ID="CopyrightContent" runat="server">
68   
69                       </asp:ContentPlaceHolder>
70   
71                   </td>
72   
73               </tr>
74   
75           </table>
76   
77       </form>
78   
79   </body>
80   
81   </html>
82 

Design 状态下我们可以看到如下效果:
有了 MasterPage 后我们该如何使用?光上面所说的根本解决不了任何问题。下面看看如何使用:
首先建立一个新的 aspx 页面,记得把 Select Master Page 项选上:



此时点击 Add 后会谈出下面这个窗口:

由于目前只有一个 MasterPage 文件,所以只能选择它,确定后新的 Default2.aspx 页面被建立,这个时候你会发现 Default2.aspx 页面中没有标准的 html 页面的格式,取而代之的是 asp.net 控件 Content Default2.aspx 中的代码如下:
 1  <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="Untitled Page" %>
 2   
 3   <asp:Content ID="Content1" ContentPlaceHolderID="TopContent" Runat="Server">
 4   
 5   </asp:Content>
 6   
 7   <asp:Content ID="Content2" ContentPlaceHolderID="LeftContent" Runat="Server">
 8   
 9   </asp:Content>
10   
11   <asp:Content ID="Content3" ContentPlaceHolderID="CenterContent" Runat="Server">
12   
13   </asp:Content>
14   
15   <asp:Content ID="Content4" ContentPlaceHolderID="RightContent" Runat="Server">
16   
17   </asp:Content>
18   
19   <asp:Content ID="Content5" ContentPlaceHolderID="CopyrightContent" Runat="Server">
20   
21   </asp:Content>
22   
23   
24 
注意观察一下,在 <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" Title="Untitled Page" %> 里多了一个 MasterPageFile="~/MasterPage.master" 项,这表明这个页面使用 MasterPage.master
, 该文件存放在与该页面相同的目录下 ( 当有多个 MasterPage 文件时你也可以新建立一个目录方便管理 ) 。记得刚才在 MasterPage.master 中的设置吗,我们定义了五个 ContentPlaceHolder ID 分别是 TopContent LeftContent CenterContent RightContent CopyrightContent ,在 Default2.aspx 页面下的 Content 控件里,有一个属性就是 ContentPlaceHolderID ,该字段表明该 Content 控件中的内容代替 ID 指向的 ContentPlaceHolder 占位控件,这就是真的 霸主 了。这样一来,页面布局就使用 MasterPage.master 中的,而内容就使用 Default2.aspx Content 控件下的,因此你在 Default2.aspx 中找不到 Html 页面的基本格式标记,如 <head> <body> 。看一下 Design Default2.aspx 会是什么样子:

MasterPage.master 很像,但又不同,因为除了 Content 控件占用的地方是可以编辑的外其他地方都是不可以编辑的。
现在可以总结 MasterPage 的作用了, MasterPage 其实是一种模板,它可以让你快速的建立相同页面布局而内部不同的网页,如果一个网站有多个 MasterPage ,那么新建 aspx 文件的时候就可以选择需要实现页面布局的 MasterPage 。另外,在你没有使用 MasterPage 之前,如果 N 个相同的页面布局需要改动成另外一个样式,那么你就要做很多无聊而又不得不做的工作,对 N 个页面进行一一更改,如果使用了 MasterPage ,你只要改动一个页面也就是 MasterPage 文件就可以了。还有,你是否发现你要要部署的 web 程序越来越大,使用 MasterPage 在一定程度上会减小 web 程序的大小,因为所有的重复的 html 标记都只有一个版本。

PS4.0 中的应用 .



如图所示 : 在在 PS4.0 中所使用的 MasterPage.master. 图中所显示的是 content 控件

SignIn.aspx 中的应用 .
代码如下 :
<%@ Page AutoEventWireup="true" Language="C#" MasterPageFile="~/MasterPage.master"
    Title="Sign In" %>
<asp:Content ID="cntPage" runat="Server" ContentPlaceHolderID="cphPage">

NewUser.aspx 中的使用
代码如下 :
<%@ Page AutoEventWireup="true" Language="C#" MasterPageFile="~/MasterPage.master" Title="New User" %>
<asp:Content ID="cntPage" ContentPlaceHolderID="cphPage" Runat="Server" EnableViewState="false">

http://chatgpt.dhexx.cn/article/MgWPHI7Z.shtml

相关文章

VS2012 ASP.NET 母版页的创建与使用

在做牛腩新闻发布系统的过程中,需要使用ASP.NET的母版页来抽出所有网页的公共部分,以便更好的复用自己的网页布局和设计. 首先我们来看如何创建一个新的母版页,如下图所示: 添加之后,如下图所示: 编写完母版页之后,在使用的时候,问题出现了,在新建Web窗体时,右下角没有视频里讲…

ASP.NET母版页

4.2母版页 4.2.1 母版页概述 用户在设计网站时经常会遇到多个网页部分内容相同的情况&#xff0c;例如&#xff1a;具有网关和内容都相同的标题栏、页脚栏、导航栏等&#xff0c;如果每个网页都设计一次&#xff0c;不仅重复劳动而且非常繁琐&#xff0c;此时&#xff0c;使用母…

ASP.NET 母版页(概述、创建)

文章目录 一、母版页概述1、母版页的运行机制2、母版页的优点 二、创建母版页三、创建内容页 一、母版页概述 母版页的主要功能是&#xff1a;创建统一的用户界面和样式。它由一个母版页和&#xff08;多个&#xff09;内容页构成&#xff0c;这些内容页和母版页合并将母版页的…

母版页的使用

一、母版页简介 使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页&#xff08;或一组页&#xff09;定义所需的外观和标准行为。 母版之所以称为母版&#xff0c;就是将大部分网页上固定内容&#xff0c;比如导航栏&#xff0c;版权…

Arduino驱动直流电机风扇

时隔多年&#xff0c;重拾Arduino&#xff0c;先拿直流电机风扇找一下手感。配套的东西如下图所示&#xff1a;直流电机、控制板、风扇、架子。   装好之后的效果如下图所示。   本文参照参考文献中的示例代码进行测试。参考文献中的代码主要通过按钮控制风扇的不同转速&…

BLDC无刷直流电机驱动程序

1.先不考虑霍尔信号&#xff0c;先让BLDC动起来&#xff0c;如下图&#xff0c;主要驱动6个MOS管&#xff0c;有两种驱动方式。第一种方式&#xff0c;上下桥臂都给PWM信号&#xff1b;第二种方式&#xff0c;3个PWM信号3个电平信号。 2.霍尔信号接到定时器的输入捕获&#xf…

直流电机驱动实验

直流电机驱动实验 实验现象 本实验采用小型直流电机驱动L9110驱动一个小型直流电机 理论学习 按照上图接线完成后可以对连接在驱动板上的电机经行控制。 A1.A20.0 时为停转 A1.A21.0 时为正转 A1.A20.1 时为反转 PA 为 PWM 波输入 G 为共地引脚 其中PWM频率最高为 60KHZ&a…

大功率双路直流电机驱动板的设计源文件

大功率双路直流电机驱动板的设计源文件&#xff0c;包括原理图、PCB、原理图与PCB器件库、BOM清单、stm32测试源代码。 &#xff08;注意&#xff1a;出售的是设计资料&#xff0c;出售的是资料&#xff0c;不是实际的产品哈&#xff09;&#xff0c;另外可对该图的设计原理&am…

【2022项目复盘】无位置传感器的无刷直流电机驱动设计

目录 概述BLDC发展历史现状未来前景 工作原理BLDC结构六步法 启动方式转子预定位转子的同步加速切入转子正常旋转程序 反电动势检测法硬件设计控制模块最小系统三相逆变器电路及其驱动设计端电压检测电路设计电流采样电路设计 回顾 概述 无位置传感器的无刷直流电机驱动设计是…

STM32 GPIO的配置以及直流电机驱动的实现

GPIO的配置以及直流电机驱动的实现 一、GPIO概述 GPIO&#xff1a;General-purpose input/output 通用型输入输出的简称 功能类似8051的P0—P3&#xff0c;其接脚可以供使用者由程控自由使用&#xff0c;PIN脚依现实考量可作为通用输入&#xff08;GPI&#xff09;或通…

lm298驱动电机c语言程序,机器人教程3:直流电机驱动及L298N模块

这一节我们主要介绍H桥电路,后面的章节我们会专门介绍到PWM调速问题。 3、H桥电路 电机做好后后引出两个极,如图5所示,给两个极能电就能够实现其转动,而改变其电源极性刚可以实现换向。 图5减速电机及电路图 前面我们说过必须要解决驱动力不足和换向问题,设计一般会采用两…

直流电机驱动电路

一、 直流电机驱动电路的设计目标 在直流电机驱动电路的设计中&#xff0c;主要考虑一下几点&#xff1a; 功能&#xff1a;电机是单向还是双向转动&#xff1f;需不需要调速&#xff1f;对于单向的电机驱动&#xff0c;只要用一个大功率三极管或场效应管或继电器直接带动电机即…

直流电机驱动保护方案

直流电机&#xff08;direct current machine&#xff09;是指能将直流电能转换成机械能或将机械能转换成直流电能&#xff08;直流发电机&#xff09;的旋转电机. 1.起动和调速性能好,调速范围广平滑,过载能力较强,受电磁干扰影响小; 2.直流电机具有良好的启动特性和调速特性;…

51单片机——直流电机驱动PWM

目录 一、功能描述 二、主要模块介绍 2.1 直流电机 2.1.1 直流电机外部 2.2 PWM介绍 2.2.1 产生PWM的方法 三、测试文件test.c 四、效果演示 一、功能描述 利用定时器产生PWM&#xff0c;对直流电机进行调速。 二、主要模块介绍 2.1 直流电机 直流电机是一种将电能转换为…

贰拾:直流电机的驱动

直流电机 直流电机是电机的主要类型之一&#xff0c;由于它具有良好的调速性能&#xff0c;在许多调速性能要求较高的场合&#xff0c;得到广泛应用。在电子制作中也较多设计到直流电机的使用。 当负载一定时&#xff0c;流过直流电机的平均电流越大&#xff0c;产生的力矩就…

直流电机的原理及驱动

文章目录 直流电机的原理直流电机的种类有刷电机无刷电机空心杯 直流减速电机减速器减速电机驱动器 直流电机的原理 在了解直流电机工作原理之前&#xff0c;先复习一下高中几个物理知识 第一.左手定则 通电导线处于磁场中时&#xff0c;所受安培力 F (或运动)的方向、磁感应…

tar,zip压缩命令

压缩解压 tar tar这个命令并没有压缩的功能&#xff0c;它只是一个打包的命令&#xff0c;但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能&#xff0c;实行一个先打包后压缩的过程。 文件压缩解压&#xff1a;bzip2 压缩用法&#xff1a;tar jcvf 压缩包包…

linux 压缩根目录文件,Linux操作系统下如何压缩文件? zip压缩命令使用

Linux zip命令用于压缩文件。 zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有”.zip”扩展名的压缩文件。 在linux操作系统中,使用zip命令进行文件压缩时,你可能会遇到下面的报错: zip I/O error: Permission denied zip error: Could not create output file (/…

linux命令zip如何使用,linux zip压缩命令如何使用

linux zip压缩命令的使用方法&#xff1a;1、使用zip打包文件夹&#xff0c;代码为【zip -r -q -o pack.zip mark/】&#xff1b;2、使用【-e】参数可以创建加密压缩包&#xff0c;代码为【zip -r -e o packencryption.zi】。 本教程操作环境&#xff1a;linux7.3系统、DELL G3…

Linux系统zip压缩命令

不管是在 Windows 系统还是 Linux 系统中&#xff0c;我们常常会有一些大文件&#xff0c;特别占磁盘空间&#xff0c;对于这种占用空间大的文件我们很多时候就要用到 ZIP&#xff08;压缩文件格式&#xff09;&#xff0c;ZIP 文件格式是一种数据压缩和文档储存的文件格式。除…