ASPNET应用开发与实战第10章 母版页的使用
ASPNET网络程序设计教程第10章 样式和主题
主要步骤
打开“添加新项”对话框,如图模板列表中选 择“母版页”项,在“名称”文本框中将其命名为 “MasterPage.master”。
接下来设计“母版页”,假设要设计一个论坛系统,该论坛最上 部显示论坛基本信息,最下部显示版权信息,中间部分为动态内容, 可以使用表格进行布局,在动态内容的地方使用 contentplaceholder 占位即可。如修改页面的<form></form>内部,具体代码实现见如下。
10.2.2 CSS的基本语法
CSS 的 定 义 是 由 3 部 分 构 成 : 选 择 符 ( selector ) , 属 性 ( properties ) 和 属 性 的 取 值 (value),其语法如下: selector {property: value} (选择符 {属性:值}) 选择符是可以是多种形式,一般是要定义样式 的 HTML标记,如 BODY、 P、 TABLE等,可以通 过此方法定义它的属性和值,属性和值要用冒号隔 开。例如, body {color: black},此例的效果是使 页面中的文字为黑色。
<form id="form1" runat="server"> <table width="748px" cellspacing="0" cellpadding="5" border="0" align="center"> <tr style="height:100px" align="center"> <td>论坛基本信息</td> </tr> <tr> <td><asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder></td> </tr> <tr style="height:20px" align="center"> <td>论坛版权信息</td> </tr> </table> </form>
母板页
母版页概述使用 母版页可以为应用程序中的页创建一致的布局。
单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。
然后可以创建包含要显示的内容的各个内容页。
当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页的内容组合在一起输出。
母版页的工作原理母版页实际由两部分组成,即母版页本身与一个或多个内容页。
演练:在Visual Web Developer 中创建和使用 母版页本演练阐释如何创建一个母版页和几个内容页。
母版页使您可以创建一个页面布局(模板页),然后创建各个页面,这些页面包含的内容在运行时与母版页合并。
创建网站如果已经在Visual Web Developer 中创建一个网站(例如,通过执行演练:在Visual Web Developer 中创建基本网页中的步骤创建),可以使用该网站并跳至下一节“创建母版页”。
否则,按照下面的步骤创建一个新的网站和网页。
创建文件系统网站打开Visual Web Developer。
在“文件”菜单上单击“新建网站”。
出现“新建网站”对话框。
在“Visual Studio 已安装的模板”之下单击“ 网站”。
在“位置”框中输入要保存网站页面的文件夹的名称。
例如,键入文件夹名“C:\WebSites”。
在“语言”列表中,单击您想使用的编程语言。
单击“确定”。
Visual Web Developer 创建该文件夹和一个名为Default.aspx 的新页。
创建母版页母版页是用于设置页面外观的模板。
在本节中,将首先创建一个母版页。
然后,使用表格来对母版页进行布局,此母版页具有一个菜单、一个徽标和一个页脚,这些内容将在站点的每个页面中出现。
还将使用内容占位符,这是母版页中的一个区域,可以使用内容页中的信息来替换此区域。
创建母版页在解决方案资源管理器中,右击网站的名称,然后单击“添加新项”。
在“Visual Studio 已安装的模板”之下单击“母版页”。
ASP.NetMVC布局页、模板页使用方法详细介绍
MVC布局页、模板页使⽤⽅法详细介绍⼀、Views⽂件夹 -> Shared⽂件夹下的 _Layout.cshtml 母版页@RenderBody当创建基于_Layout.cshtml布局页⾯的视图时,视图的内容会和布局页⾯合并,⽽新创建视图的内容会通过_Layout.cshtml布局页⾯的@RenderBody()⽅法呈现在标签之间。
@RenderPage从名称可以猜出来这个⽅法是要呈现⼀个页⾯。
⽐如⽹页中固定的头部可以单独放在⼀个共享的视图⽂件中,然后在布局页⾯中通过这个⽅法调⽤,⽤法如下:@RenderPage(“~/Views/Shared/_Header.cshtml”)带参数@RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you")调⽤页⾯获取参数://获取 RenderPage() 传递过来的参数@PageData["param"]@RenderSection布局页⾯还有节(Section)的概念,也就是说,如果某个视图模板中定义了⼀个节,那么可以把它单独呈现出来为了防⽌因缺少节⽽出现异常,可以给RenderSection()提供第2个参数:@RenderSection("head", false)或@if (IsSectionDefined("head")){@RenderSection("head", false)}else{<p>SubMenu Section is not defined!</p>}代码如下:<!DOCTYPE html><html><head><title>@ViewBag.Title</title><link href="@Url.Content(" rel="external nofollow" ~/Content/Site.css")" rel="stylesheet" type="text/css" /><script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>@RenderSection("head", required: true)@*View页⾯⾃定义特定js/css使⽤*@</head><body>@RenderPage("~/Views/Shared/_Header.cshtml")@RenderBody()</body></html>⼆、创建视图,使⽤母版页代码如下:@{ViewBag.Title = "Index";Layout = "~/Views/Shared/_Layout.cshtml";}<h2>Index</h2>@section Head{<script type="text/javascript">$(function () {alert("hello jquery");});</script>}<p>执⾏C#普通语法</p><br />@DateTime.Now.Date.ToShortDateString()<p>执⾏C#语句段</p>@{List<string> list = new List<string> { "Mvc3", "Razor" };list.Add(".Net4");}<ul>@foreach(string s in list){if (string.IsNullOrEmpty(s)){<li>空</li>}else{<li>@s</li>}}</ul>三、⽣成页⾯的源代码<!DOCTYPE html><html><head><title>Index</title><link href="/Content/Site.css" rel="external nofollow" rel="stylesheet" type="text/css" /><script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script><script type="text/javascript">$(function () {alert("hello jquery");});</script></head><body><h2>Index</h2><p>执⾏C#普通语法</p><br />2013/3/11<p>执⾏C#语句段</p><ul><li>Mvc3</li><li>Razor</li><li>.Net4</li></ul></body></html>四、@Html.PartialPartial 每次都会创建⾃⼰的 TextWriter 实例并且把内容缓存在内存中. 最后把所有 writer输出的内容发送到⼀个 MvcString对象中更多时候我们会使⽤ @{ Html.RenderPartial("Details"); } ⽽不是@Html.PartialHtml.RenderPartial()与@Html.Partial的区别Html.RenderPartial 直接输出⾄当前 HttpContext(因为是直接输出,所以性能好)。
ASPNET中的CSS、主题和母版页
主题和母版页(层叠样式表、主题)整合网站的第一步是采用一组一致的可视化样式。
CSS 为格式化Web 页面提供了跨平台的解决方案,它可以和HTML 或则XHTML 一起工作并几乎被所有的现代浏览器支持。
使用CSS 时,可以利用样式表定义一组预定义格式,然后通过CssClass 属性把这些样式表链接到适当的控件。
样式表由规则组成,每个规则定义了Web 页面中的一个元素应该如何被格式化。
每个规则的名字包含两部分:1.点号前面表明规则要作用的HTML 元素,点号前面什么都没有表示这个规则可作用于所有的HTML 元素。
2.点号后面的部分是一个唯一的名称,叫做CSS 类名,类名区分大小写。
.heading1{font-weight:bold;font-size:large;color:Lime;font-family:Verdana, Arial, Sans-Serif;}还可以创建自动应用到HTML 标签的规则,只要把标签名作为规则名即可:h2{color: Red;}这种自动的样式表看起来很有用,但它在 里却不是那么方便。
通常你直接处理的是控件而不是独立的HTML 标签。
有时候你总是不能确定将会用什么标签呈现某个控件,因此,最好通过类名显示指定规则。
如果你不喜欢手工书写CSS 规则,VS 允许使用设计器来构建。
只要添加一个规则的声明,在花括号中点击鼠标右键,选择创建样式即可。
一个典型的样式表会定义大量的规则,样式表常用于正式定义网站用户界面主要的格式,参考下面的样式表:body{font-family: Verdana, Arial, Sans-Serif;font-size: small;}.heading1{font-weight: bold;font-size: large;color: Lime;}.heading2{font-weight: bold;font-size: medium;font-style: italic;color: #C0BA72;}.blockText{padding: 10px;background-color: #FFFFD9;border-style: solid;border-width: thin;}VS 中选择视图,其他窗口,文档大纲,可以清楚的罗列当前样式表中所有的规则,可以迅速定位到某一规则:要在Web 页面里使用某个规则,首先页面要链接到适当的样式表,可在<head> 节中添加如下代码(可在VS中拖动样式表进入head):<link href="MyStyleSheet.css"rel="stylesheet"type="text/css"/><div><!-- 对于普通控件应用样式,可设置 CssClass 属性.--><asp:Label ID="Label1"runat="server"Text="This Label uses the heading1 style."CssClass="heading1"></asp:Label><!-- 对于一段普通的 HTML,要使用 class 特性 --><div id="paragraph"runat="server"class="blockText"><p>This paragraph uses the blockText style.</p></div></div>也可通过“应用样式”窗口来指定具体的规则应用(视图->应用样式),这个设计可以实现一个预览的效果,不过注意以下几点:∙如果选中的是Web 控件,它添加或修改CssClass 属性。
ASP.NET中利用母版页实现网站的快速结构化
中利用母版页实现网站的快速结构化网站建设中,利用母版页实现网站的快速结构化布置,并在对网站网页的通用功能进行集中处理基础上,有效节能网页开发与网站建设的维护工作量,是当前网站建设中研究和关注的重点内容。
本文通过有关概念和理论简述,对中利用母版页实现网站快速结构化的方法原理进行研究,以供参考。
标签:;母版页;网站;快速;结构化;探讨网站建设中,网页设计的主要内容包含网站logo、标题以及导航菜单或功能按钮、网页的页面主体与页脚部分等,需要设计人员结合网站建设的要求,根据网页设计的要求,对其整体风格与布局进行准确把握,同时在对网页之间的公共部分进行单独处理基础上,有效满足网站建设以及网页设计的各种需求,促进网站建设与网页设计的质量效果提升。
根据上述对网站建设以及网站网页设计有关问题的论述,可以看出网站建设中,为满足网页设计的具体要求,需要网页各部分以及网页相互之间在一定的组织形式遵循基础上,形成网站建设的结构化体系,从而达到相应的网站建设与应用目的。
其中,在网站的结构化实现中,为确保网站结构的合理性与有效性,传统建设中是采用框架集技术实现的,即通过将一个页面空间划分成多个区域,然后在各区域进行独立网页显示。
需要注意的是,传统的网站建设中所采用的框架集技术在实际应用中存在着较为突出的问题,对网站建设的结构化设计十分不利,因此,本文将对中利用母版页实现网站的快速结构化的方法和原理进行研究,以供参考。
1 有关理论和概念简述1.1母版页及其概念理论分析中母版页作为一项新增技术,其中,网站建设中,母版页能够对网站“模板”进行定义,为其网页设计提供一致的风格与布局支持,从而在网站建设的网页设计中,通过一次修改就能够在具体实践中进行应用。
值得注意的是,与传统网站建设中网页设计所应用的框架集技术不同,母版页不仅对框架集技术的特征优势有很好的继承和实现,而且能够将一个页面空间划分成內容相对不变或者是内容可变的一个与多个区域,其中,内容不变的区域能够对网页的公共部分进行展示,而内容可变的区域则能够对具体内容进行呈现,并且是是通过另一个“内容页”页面文件进行独立存放的。
母版页的使用
母版页的使⽤⼀、母版页简介使⽤母版页可以为应⽤程序中的页创建⼀致的布局。
单个母版页可以为应⽤程序中的所有页(或⼀组页)定义所需的外观和标准⾏为。
母版之所以称为母版,就是将⼤部分⽹页上固定内容,⽐如导航栏,版权声明栏放到⼀个母版⾥,然后编写⽹页时只需要调⽤母版就⾏了,内容页就不需要再写那些内容了。
不需要将相同的部分再写⼀遍。
母版中可以标记多个asp:ContentPlaceHolder。
母版页仅仅是⼀个页⾯模板,单独的母版页是不能被⽤户所访问的。
单独的内容页也不能够使⽤。
母版页和内容页有着严格对应关系。
母版页中包含多少个ContentPlaceHolder控件,那么内容页中也必须设置与其相对应的Content控件。
当客户端浏览器向服务器发出请求,要求浏览某个内容页⾯时,引擎将同时执⾏内容页和母版页的代码,并将最终结果发送给客户端浏览器。
在中母版页有两种作⽤,⼀是提⾼代码的复⽤(把相同的代码抽出来),⼆是使整个⽹站保持⼀致的风格和样式。
母版页⽆法直接启动运⾏,需要套⽤的⼦页⾯启动把它带出来母版页的嵌套,⼀般⽤2层⾜够,最多3层<asp:ContentPlaceHolder ID="id" runat="server"> - 母版页中的位置预留<asp:Content ID="Content2" ContentPlaceHolderID="id" runat="Server"> - 填坑⼆、母版页的建⽴和使⽤1.母版页的建⽴添加新项-母版页在新建的母版页中⾃动⽣成了两个ContentPlaceHolder控件,其中⼀个在head区, ID是“head”;另⼀个在body区,默认ID是“ContentPlaceHolder1”,可以根据需要⾃⼰命名。
在内容页中,两个控件会变成与其相对应的Content控件,⽤户需在content内进⾏开发。
母版页
(2)母版页设计 页面结构图 页面Index.aspx由 4个部分组成: 页头、页尾、 内容1和内容2。
页头
内容1
内容2
页尾
2.内容页展名也为.aspx。
通过包含指向要使用的母版页的 MasterPageFile 属 性,在内容页的 @ Page 指令中建立绑定。内容页 代码清单如下: <asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Footer" Runat="Server"> </asp:Content>
内容页的@ Page指令中的 MasterPageFile属性解
析为一个.master页,就可以将内容页和
母版页合并为一个单独的已呈现的页。
(c)内容页用做母版页的容器。在内容页中可以从
(2)应用母版页创建新页面 (一)在母版页任意位置右键,点击添 加内容页
(二)在解决方案资源管理器上新建新项,在 生成aspx页面时勾选“选择母版页”。
其中 @ Page 指令,该指令将该内容页绑定 到母版页。Content 控件并将这些控件映射 到母版页上的 ContentPlaceHolder 控件来创 建内容。
注意:
(a)可以创建多个母版页来为站点的不同部分定义 不同的布局,并可以为每个母版页创建一组不同的 内容页。 (b)母版页和内容页不必位于同一文件夹中。只要
asp.net母版页如何使用
母版页如何使⽤
计算机专业的很多同学临近毕业了,才着急怎么做⼀个毕业设计来进⾏答辩,很短的时间是不可能完成的,今天就先跟着⼩编的步伐,学习母版页的使⽤,快速掌握这个实⽤技巧,相信⼀定在⼤家的毕业设计过程中发挥巨⼤的作⽤。
⼯具/原料
Visual Studio 2008
⽅法/步骤
打开Visual Studio 2008,点击【⽂件】【打开⽹站】找到⽹站根⽬录⽂件夹,点击【打开】
在⽹站根⽬录上单击右键,选择【添加新项】
在弹出的【添加新项】选择【母版页】默认使⽤名称,点击【添加】
打开母版页的拆分界⾯,我们可以看见页⾯视图⾥⾯有⼀个【ContentPlaceHolder】元素
⽹页元素【ContentPlaceHolder】⾥⾯放置的是⼦页⾯的东西,我们每个页⾯不同的地⽅就使⽤这个,所以先复制⽹页元素到母版页
母版页代码
【 <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> ⼦页⾯内容
</asp:ContentPlaceHolder>】
⽤于显⽰不同页⾯差异部分
注意,母版页必须存放于⽹站根⽬录,以便随时调⽤
以上就是跟⼤家分享的母版页如何使⽤的图解教程,⼤家也可以结合之前这篇⽂章进⾏学习,可能会有意想不到的收货。
访问ASP.NET母版页的三种常用方法
访问母版页的三种常用方法论文导读:新建一个网站。
创建母版页和内容页。
访问母版页的三种常用方法。
关键词:,母版页1. 创建母版页和内容页母版页是一个以.master为扩展名的文件,由特殊的@Master指令识别。
新建一个网站,添加一个母版页,命名为MasterPage,在母版页中添加一个服务器端Button控件,命名为button1。
论文大全,。
内容页是与普通网页类似,以.aspx为扩展名,但是在创建是要为它指定母版页,它主要包含页面中的非公共内容。
新建一个Web窗体,将MasterPage作为它的母版页,命名为ContentPage。
2. 访问母版页的常用方法访问母版页通常包括引用母版页的属性、方法、控件和响应控件事件。
论文大全,。
2.1引用公共属性和方法引用母版页中的属性和方法需要在内容页中使用@MasterType指令-在ContentPage.aspx文件中加入语句,该指令的作用是使内容页的Master属性被强类型化,即通过@MasterType指令创建与内容页相关的母版页的强类型引用。
论文大全,。
在内容页中只能引用母版页中的公共属性和方法。
论文大全,。
在母版页的代码文件中加入下面的代码:Private _str As String = '公共属性'Public Property property1() As StringGetReturn _strEnd GetSet(ByVal valueAs String)_str = valueEnd SetEnd PropertyPublic Sub sub1()MsgBox('公共方法')End Sub其中Property1是公共属性,用于访问私有变量_str;Sub1是公共方法。
在内容页的代码文件Content.aspx.vb中通过下面的代码访问母版页的属性和方法:Master.sub1()Dim str As String = Master.property12.2 引用母版页控件在内容页中还可能引用母版页的控件,而且没有必须为公共成员的限制。
asp.net中如何编写代码来引用母版页
中如何编写代码来引⽤母版页可以在内容页中编写代码来引⽤母版页中的属性、⽅法和控件,但这种引⽤有⼀定的限制。
对于属性和⽅法的规则是:如果它们在母版页上被声明为公共成员,则可以引⽤它们。
这包括公共属性和公共⽅法。
在引⽤母版页上的控件时,没有只能引⽤公共成员的这种限制。
引⽤母版页上的公共成员1.在内容页中添加 @ MasterType 指令。
在该指令中,将 VirtualPath 属性设置为母版页的位置,如下⾯的⽰例所⽰:<%@ MasterType virtualpath="~/Masters/Master1.master" %> 此指令使内容页的 Master 属性被强类型化。
2.编写代码,将母版页的公共成员⽤作 Master 属性的⼀个成员,如本例中,将母版页名为 CompanyName 的公共属性的值赋给内容页上的⼀个⽂本框引⽤母版页上的控件使⽤ FindControl ⽅法,将 Master 属性的返回值⽤作命名容器。
下⾯的代码⽰例演⽰如何使⽤ FindControl ⽅法获取对母版页上的两个控件的引⽤(⼀个 TextBox 控件和⼀个 Label 控件)。
因为 TextBox 控件处在 ContentPlaceHolder 控件的内部,必须⾸先获取对 ContentPlaceHolder 的引⽤,然后使⽤其 FindControl ⽅法来定位 TextBox 控件。
void Page_Load(){// Gets a reference to a TextBox control inside// a ContentPlaceHolderContentPlaceHolder mpContentPlaceHolder;TextBox mpTextBox;mpContentPlaceHolder =(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");if(mpContentPlaceHolder != null){mpTextBox =(TextBox) mpContentPlaceHolder.FindControl("TextBox1");if(mpTextBox != null){mpTextBox.Text = "TextBox found!";}}// Gets a reference to a Label control that not in// a ContentPlaceHolderLabel mpLabel = (Label) Master.FindControl("masterPageLabel");if(mpLabel != null){Label1.Text = "Master page label = " + mpLabel.Text;}}。
(十三)Asp.NET母版页的使用
(⼗三)母版页的使⽤我们浏览⽣活中的主流平台的时候会发现它们每个页⾯⼏乎都是⼀个风格的,⽐如我们熟悉的B站:⽹站的布局通常是统⼀的,上⾯是Logo、菜单条、下⾯是公司地址、版权声明等。
如果每个页⾯都重复做这些功能的话⼯作量太⼤,⼀旦修改那么每个页⾯都要修改,那么如何解决这⼀问题?中⼀般⽤母版(MasterPage)技术来解决这个问题。
母版页允许为web 应⽤程序中的所有页⾯(或页⾯组)创建⼀致的外观和⾏为。
母版页为其他页⾯提供模版,带有共享的布局和功能。
母版页为内容定义了可被内容页覆盖的占位符。
输出结果是母版页和内容页的组合。
内容页包含您想要显⽰的内容。
当⽤户请求内容页时, 会对页⾯进⾏合并以⽣成结合了母版页布局和内容页内容的输出。
创建母版页⽰例:⼀、我们⾸先来创建⼀个母版页,右键添加新项,选择Web Forms母版页,起名test.master:⼆、我们发现母版页是⽆法直接浏览的,必须嵌⼊相应的内容页后才可以浏览,右键—添加—新建项—选择包含母版页的Web窗体,在弹出的选择框中,选择我们刚创建好的test.master:三、在内容页中对预留位置的占位部分进⾏内容填充:四、运⾏后看效果:五、查看⽹页源代码:六、画图再次分析母版页和内容页的关系:⼩结:MasterPage是这样⼀种技术,把页⾯布局画好,在变化的内容部分“留空”,留空的部分由⼦页⾯填充内容,这样⼦页⾯只要填空就⾏,不⽤重复设计页⾯结构,⼀旦要修改页⾯结构修改母版页就可以,这样所有页⾯都会变化。
母版页“挖坑”,具体页⾯“填坑”。
母版页、具体页⾯中⼏乎可以使⽤所有的普通WebForm页⾯能够使⽤的技术。
母版页的特点:1. 有利于站点修改和维护,降低开发⼈员的⼯作强度2. 提供⾼效的内容整合能⼒3. 有利于实现页⾯布局4. 提供⼀种便于利⽤的对象模型母版页和⽤户控件有什么区别? 母版页是提取多个页⾯的外围公共部分,开发内容页时是嵌⼊于母版页中间的; ⽽⽤户控件是提取多个页⾯容中间任意⼀个位置的公共部分,开发时是把⽤户控件嵌⼊在开发的页⾯中的。
母版页使用)
母版页使用详解收藏母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用。
它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形成一张漂亮的婚纱照片,这样可以大大简化婚纱艺术照的设计复杂度。
这里的母版页就像婚纱模板,而内容页面就像两位新人的照片。
在VS2003中没有母版页,要实现这种设计重用的效果,我们只能用“用户控件”来实现,但用户控件没有一种可视化的组合外观,使用起来不太方便。
母版页(扩展名是.master)它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码。
与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域。
代码如下:<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>......<form id="form1" runat="server"><div><asp:contentplaceholder id="ContentPlaceHolder1" runat="server"></asp:contentplaceholder></div></form>......注意:1、这里的声明指示符是“<%@ Master...%>”2、其内部包含<asp:contentplaceholder......>控件内容页(扩展名是.aspx)在建立内容页面的时候,在“添加新项”对话框中要选中“选择母版页”复选框。
ASP_NET 母版页概述
Visual Basic 复制代码
<%@ Page Language="VB" MasterPageFile="~/MasterPages/Master1.master" Title="Content Page" %>
Visual Studio 开发中心
主页技术资源库学习下载支持社区产品信息
可打印版本 添加到收藏夹 提交 添加内容… 请单击以进行评分并提供反馈
请就此内容提供反馈
MSDN Library
Microsoft BizTalk Server 2009 帮助
C#
C++
J#
JScript
XAML
This page is specific to
Microsoft Visual Studio 2005/.NET Framework 2.0
Other versions are also available for the following:
页中所执行的所有任务都可以在内容页中执行。例如,可以使用服务器控件和数据库查询或其他动态机制来生成 Content 控件的内容。
内容页可能看起来与下面类似。
Visual Basic 复制代码
<% @ Page Language="VB" MasterPageFile="~/Master.master" Title="Content Page 1" %>
Web程序设计ASPNET实用网站开发第10章主题母版用户控件很Web部件习题答案沈士根
第10章主题、母版、用户控件很Web部件10.6 习题1.填空题(1)主题可以包括________、样式表文件和________。
外观文件图片文件p.246(2)母版页由特殊的________指令识别,该指令替换了用于普通.aspx网页的@Page指令。
@Masterp.252(3)母版页中可以包含一个或多个可替换内容占位符________。
ContentPlaceHolderp.252(4)如果用户要想在网站运行时动态地添加或删除WebPart控件,则需要添加________控件。
WebPartManagerp.270(5)内容页通过________和母版页建立联系。
ContentPlaceHolderIDp.2522.是非题(1)主题至少要有样式表文件。
(×)p.246(2)母版页只能包含一个ContentPlaceHolder控件。
(×)p.255(3)在同一主题中每个控件类型只允许有一个默认的控件外观。
(√)p.248(4)控件外观中必须指定SkinId值。
(×)p.248(5)同一主题中不允许一个控件类型有重复的SkinId。
(√)p.248(6)每个部件页可以包含多个WebPartManager控件。
(×)p.2623.选择题(1)主题不包括(D)。
A.skin 文件 B. css文件 C. 图片文件 D.config文件(2)一个主题必须包含(A)。
A.skin 文件 B. css文件 C. 图片文件 D.config文件(3)母版页文件的扩展名是(B)。
A..aspx B. .master C. .cs D..skin(4)在(D)模式下,允许重新启用被用户关闭的WebPart控件。
p.264A.BrowseDisplayModeB. DesignDisplayModeC. EditDisplayModeD.CatalogDisplayMode4.简答题(1)<% @Page Theme="ThemeName"%>和<% @Page StylesheetTheme="ThemeName"%>有何区别?p.249答:前者会覆盖本地属性,而后者不会。
浅谈ASP.NET中母版页快速实现网站结构化的利用
浅谈中母版页快速实现网站结构化的利用的简述一个吸引眼球的Web页面不仅要有完美的独特设计,还得有丰富实用的功能体验,才能够达到用户满意。
但是如果我们仅仅把一两个页面做得优秀,其他页面错综复杂,也不会出现很好的效果,所以就要求我们制作出独特且统一的页面,这样我们的产品才会受到客户的信赖。
2母版页详细概述2.1母版页简述 4.0版本中母版页实际由母版页和内容页两部分组成。
我们通过使用 4.0单个母版页来定义Web中整个页面或者一组页面来统一设计好的风格布局,然后通过相应函数来调用母版页,这个调用的是创建过的内容包含要显示内容到各个内容页,设计者可以通过对内容页的再编辑来完成整个Web页面内容。
当用户访问主页面时,以母版页的整体布局与内容页的内容组合在一起输出。
母版页在某种程度上实际是定义了网页的模板,我们参照一些模板进行整合制作,来完成整个设计。
此功能集合了Dreamweaver框架集的优点,也就是它能把类似于一个页面区域的内容分为相对不变的公共区域和内容可变的一个或多个选用区域。
这里内容相对不变的区域我们可以设计网页的公共部分,比如标题、导航菜单和版权等。
这些公共部分可以使用传统制作网页的方式进行制作,像Logo、标题和版权声明等静态内容。
而导航菜单或功能按钮这些元素可以通过设计标签和文本框等控件元素来完成;当然使用 4.0软件可以通过代码分离的原则,在后台编写代码来动态生成相应内容,比如根据用户的权限动态生成等。
内容可变的区域用来显示具体的内容,它需要在单独的内容页中编辑。
相对独立的母版页和内容页虽然是两个不同的文件,但是在与实际操作运用当中它们两个是相互不能分开的。
在设计中母版页直接就统一了页面的布局和风格,能从实际中凸显出网页的总体功能,但是它不能详细地体现出页面实际显示的内容。
与之相应的内容页在母版页的基础上很好地体现出了页面编辑内容,但是它没有组成页面的HTML 基本标签元素,如html、head和body标签等,所以它不是一个完整的网页。
ASP.NET中母版页的应用研究
权声 明等 内容整 合到母 版 页 中 .然后 基于母 版 页创 建 在运行 时 , 版页是 按 照下 面的步 骤处理 的 : 母 不 同 的内容 页 . 以实现 We b应 用 程 序 中页 面 的一致 性 1用户通 过键 人 内容页 的 U L来请 求某 页 1 R 布局 风格 2获 取 该 页 后 , 取 @ P g 指 令 。 果 该 指 令 引 用 1 读 ae 如
10 7
福 建 电
脑
21 0 0年第 l 0期
A PN T中母版 页的应用研究 S .E
于 洋
(辽 宁省 交通 高等 专科 学校信 息工程 系 辽 宁 沈 阳 10 2 1 12)
【 要 】 S .E 摘 :A PN T是基 于Mi o f E r w r c s t TFa o ro. N me k的技术,为开发功能强大的 we 应用程序提 b
客户 端浏 览器
21母 版 页 .
母 版页 文件 由两部 分组成 : T H ML元素 和服 务器 控
件 、 o t t c H le 控件 。 C ne Hae odr n
母 版页 与普通 A PN T页面 文件 的区别 : S .E
.
母 版页 由特殊 的 @Matr 令识 别 . s 指 e 该指 令替 换
图 1 以 老 师 和 管 理 员 身 份 登 陆 系 统 Байду номын сангаас 的 运 行 界 面
以学生 成绩 管理 系统 为例 说 明 A PN T中母版 页 S .E 了普 通 A PN T页 面 @P g S .E ae指令 。 系统 页 面 由四部 分组成 : 面头 部 、 页 页面尾部 、 母 版 页 中包 含一 个 或多个 C net e H le 控 的应用 。 o t Hae od r n 左侧 导航条 和右侧 页 面 主体组 成 。系统 中有 4种用 户 件 。C ne t1cH le 控 件 是 可替 换 内容 占位 符 , o t Pae od r n 只
ASP NET教学课件(全):第10章 主题、母版、用户控件和Web部件
10.1.2 自定义主题
自定义主题就是建立主题文件夹,然后 添加外观文件(.skin)、样式文件 (.css)、图片文件到主题文件夹中。
主题和外观文件 添加CSS到主题 添加图片文件到主题
注意:主题文件夹包含在App_Themes中
7
主题和外观文件
一个主题必须包含外观文件。 创建主题:右击项目,“添加 文件夹”→“主题”,在网站根文件下 自动添加文件夹App_Themes,并在该文 件夹下建立主题文件夹(可重命名如Red) 添加外观文件:右击主题文件夹 Red→“添加新项”→“外观文件”(可 重命名如Red.skin )
8
默认的样式模板( Red.skin)
<%-默认的外观模板。以下外观仅作为示例提供。 1. 命名的控件外观。SkinId 的定义应唯一,因为在同一主题中不允许
一个控件类型有重复的 SkinId。 <asp:GridView runat="server" SkinId="gridviewSkin"
BackColor="White" > <AlternatingRowStyle BackColor="Blue" /> </asp:GridView> 2. 默认外观。未定义 SkinId。在同一主题中每个控件类型只允许有一
21
母版页的组成
母版页由特殊的@ Master指令识别,该指令替 换了用于普通.aspx页的@ Page指令。 母版页包含网页的所有顶级XHTML元素,如 <html>、<head>和<form>。
通常可以在母版页上建立一个HTML表用于布局。 将一个<img>元素用于公司徽标。 使用服务器控件创建站点的标准导航。 将静态文本用于版权声明。
ASP.NET
MVC使⽤母版页视图⼀、母版页介绍和使⽤母版页的扩展名为".cshtml",也叫做视图布局页,它相当于⽹页的模板。
在其他⽹页中,只要引⽤了母版页,母版页的页⾯内容就可以⾃动显⽰出来,设计者可以修改引⽤的母版页中预留的部分,其他部分保持不变,这样就可以使多个页⾯的风格保持⼀致,给⽹页设计带来了很⼤的⽅便。
1、创建母版页视图的要点(1)、在Views的⼦⽂件夹Shared⽂件夹⾥⾯添加。
(2)、以“_”前缀作为开头。
(3)、以"Layout.cshtml"作为结束。
2、MVC母版页⾥的三个功能点:(1)、RenderBody-⼦页⾯内容占位符。
(2)、RenderPage-引⽤呈现⼀个页⾯。
(3)、RenderSection-内容占位符。
如果新建⼀个MVC程序,⾥⾯有没有使⽤母版页视图呢?查看Index视图:从上⾯的截图中可以看出,Index⾥⾯只有两个DIV,但是⼀个基本的⽹页代码需要有HTML、head、body等元素标签组成,但是这⾥⾯并没有。
同时,浏览index视图:这时查看⽹页源代码:从上⾯的截图中可以看到有HTML、head、body等HTML元素,到这⾥可以看出,MVC中已经使⽤了母版页。
MVC中默认使⽤Shared⽂件夹⾥⾯的_ViewStart.cshtml视图。
⼆、RenderBodyRenderBody的作⽤是⼦页⾯内容占位符。
即母版页中使⽤了RenderBody的地⽅会使⽤⼦页⾯的内容来代替。
以_Layout视图为例:在_Layout母版页中使⽤了RenderBody,所以运⾏的时候这部分内容将会被Index⾥⾯的内容代替。
下⾯我们⾃⼰重新定义⼀个母版页,同时定义⼀个⼦页⾯来使⽤这个母版页来查看RenderBody的作⽤。
1、添加母版页在Shared⽂件夹上⾯右键添加,选择MVC5布局页2、命名为_TestLayout⽣成的模板页代码如下:<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width" /><title>@ViewBag.Title</title></head><body><div>@RenderBody()</div></body></html>3、修改母版页,修改后的母版页代码如下:<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width" /><title>@ViewBag.Title</title></head><body><div>我是母版页,在⼦页⾯中不允许更改<!--内容页占位符-->@RenderBody()</div></body></html>4、创建⼦页⾯使⽤母版页在Home控制器⾥⾯添加⼀个ActionName为Test的Action⽅法,并添加视图:⽣成的Test视图如下图所⽰:注意:如果Layout=null,则表⽰不使⽤母版页视图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明: 上面代码中的ContentPlaceHolder控件为占位符控件,它定义的位置可替换为内容页出现的区域 。每个母版页中都可以包含一个或多个ContentPlaceHolder控件。
10.1.3
创建内容页
创建完母版页后,接下来需要创建内容页。内容页的创建与普通Web窗体类似,具体步骤如下: (1)在网站的解决方案下右击网站名称,在弹出的快捷菜单中选择“添加新项”命令。 (2)打开“添加新项”对话框,如图10-3所示,该对话框中选择“Web窗体”并为其命名,同时选 中“将代码放在单独的文件中”和“选择母版页”复选框。
10.1.2
创建母版页
母版页中包含的是页面的公共部分,因此,在创建母版页之前,必须判断哪些内容是页面的公 共部分。如图10-1所示为企业绩效管理系统的首页Index.aspx,该网页由4部分组成,即页头、页尾 、登录栏和内容页。经过分析可知,其中,页头、页尾和登录栏是企业绩效管理系统中的公共部分 ,而内容A是企业绩效管理系统的非公共部分,是Index.aspx页面所独有的。这时如果使用母版页和 内容页创建页面Index.aspx,那么必须创建一个母版页MasterPage.master和一个内容页Index.aspx ,其中,母版页包含页头、页尾和登录栏,内容页则包含内容A。
图10-1 企业绩效管理系统首页
创建母版页的具体步骤如下: (1)在网站的解决方案下右击网站名称,在弹出的快捷菜单中选择“添加新项”命令。 (2)打开“添加新项”对话框,如图10-2所示,选择“母版页”,默认名为MasterPage.master 。单击“添加”按钮即可创建一个新的母版页。
图10-2 “添加新项”对话框
1.母版页的使用 2.访问母版页的成员 3.综合实例——动态加载网站母版页
10.1
母版页的使用
10.1.1 10.1.2 10.1.3 10.1.4
母版页概述 创建母版页 创建内容页 嵌套母版页
10.1.1
母版页概述
母版页的主要功能是为应用程序创建统一的用户界面和样式,母版页由两部分构成,即 一个母版页和一个(或多个)内容页,这些内容页与母版页合并以将母版页的布局与内容页的内容 组合在一起输出。 使用母版页,简化了以往重复设计每个Web页面的工作。母版页中承载了网站的统一内容、设计 风格,减轻了网页设计人员的工作量,提高了工作效率。下面分别对母版页、内容页、母版页的运 行机制和优点进行介绍。 1.母版页 母版页是具有扩展名.master(如MyMaster.master)的文件,它是可以包括静态文本、 HTML元素和服务器控件的预定义布局。母版页由特殊的@Master指令识别,该指令替换了用于普通 .aspx页的@ Page指令。 2.内容页 内容页与母版页关系紧密,内容页主要包含页面中的非公共内容。通过创建各个内容页来定义母版 页中占位符控件的内容,这些内容页是绑定到特定母版页的页面(.aspx文件以及可选的代 码隐藏文件)。 注意:使用母版页时,必须首先创建母版页,然后再创建内容页。
第10章
本章要求: 及优点 母版页的运行机制 母版页及内容页的创建过程 嵌套母版页的使用 使用Master.FindControl方法访问母版页上的控件 引用@MasterType指令访问母版页上的属性 如何动态加载网站的母版页
第10章
主要内容
母版页的使用
3.母版页运行机制 在运行时,母版页按照下面的步骤处理: (1)用户通过输入内容页的URL来请求某页。 (2)获取该页后,读取@Page指令。如果该指令引用一个母版页,则也读取该母版页。如果是第 一次请求这两个页,则两个页都要进行编译。 (3)包含更新的内容的母版页合并到内容页的控件树中。 (4)各个Content控件的内容合并到母版页中相应的 ContentPlaceHolder 控件中。 (5)浏览器中呈现得到的合并页。 4.母版页的优点 使用母版页,可以为应用程序页面创建一个通用的外观。开发人员可以利用母版页创 建一个单页布局,然后将其应用到多个内容页中。母版页具有以下优点: 使用母版页可以集中处理页的通用功能,以便只在一个位置上进行更新,在很大程度上提高 了工作效率。 使用母版页可以方便地创建一组公共控件和代码,并将其应用于网站中所有引用该母版页的 网页。例如,可以在母版页上使用控件来创建一个应用于所有页的功能菜单。 可以通过控制母版页中的占位符ContentPlaceHolder对网页进行布局。 由内容页和母版页组成的对象模型,能够为应用程序提供一种高效、易用的实现方式,并且 这种对象模型的执行效率比以前的处理方式有了很大的提高。
(3)母版页MasterPage.master中的默认代码如下:
%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" /TR/xhtml1/DTD/xhtml1-transitional.dtd"> html xmlns="/1999/xhtml"> head runat="server"> <title>无标题页</title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> /head> body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form> /body> /html>