浅谈Asp.Net母版页和内容页运行机制

从上面的讲解中可以看出,单独的母版页是不能被用户所访问的。没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值。同样道理,单独的内容页没有母版页的支持,也不能够应用。这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能。为了便于读者理解,有必要讲解一下母版页与内容页的运行机制。

母版页和内容页的运行过程可以概括为以下5个步骤。

用户通过输入内容页的URL来请求某内容页。

获取内容页位置后,读取内容页@ Page指令。如果该指令引用一个母版页,则读取该母版页。

读取母版页后,编译母版页,将母版页载入内容页的控件树中。

将各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。

呈现得到结果页。

这一过程可由图7-9来表示。

图7-9 母版页和内容页运行机制

对访问者来说,他访问的URL路径就是内容页,但呈现的结果是母版页和内容页合并而成的一个完整页面。对开发者来说,只要做一个母版页,就可以让任意个内容页加载该母版页,而实现这一技术的关键是让母版页的ContentPlaceHolder控件与内容页的Content控件一一对应。

母版页与ASP.NET 1.1下用户控件的作用方式大致相同,即作为内容页的一个子级,并作为该页中的一个容器。

总结起来,母版页具有以下4个优点。

有利于站点的修改和维护,降低开发人员的工作强度。

由于公共内容被集中于母版页中,因此,只要修改母版页,就可以快速完成站点修改和维护工作,这在很大程度上提高了工作效率。

提供高效的内容整合能力。

在母版页中,允许添加文字、控件等Web元素,同时也可以为这些Web元素添加相应事件处理程序等。例如,只需要在母版页中添加一个服务器控件及其事件处理程序,站点内所有引用该母版页的网页,都将获得同样的应用效果。

有利于实现页面布局。

母版页中的ContentPlaceHolder控件起到了占位的作用,这在很大程度上有利于进行页面布局的工作。

提供一种便于利用的对象模型。

由内容页和母版页组成的对象模型能够为应用程序提供一种高效、易用的实现方式,并且这种对象模型的执行效率较以前的处理方式有了很大提高。

以上所述是小编给大家介绍的Asp.Net母版页和内容页运行机制,希望对大家有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET下母版页和内容页中的事件发生顺序整理

    母版页控件 Init 事件. 内容控件 Init 事件. 母版页 Init 事件. 内容页 Init 事件. 内容页 Load 事件. 母版页 Load 事件. 内容控件 Load 事件. 内容页 PreRender 事件. 母版页 PreRender 事件. 母版页控件 PreRender 事件. 内容控件 PreRender 事件.

  • ASP.Net巧用窗体母版页实例

    本文实例讲述了ASP.Net巧用窗体母版页的方法.分享给大家供大家参考.具体分析如下: 背景:每个网页的基本框架结构类似: 浏览网站的时候会发现,好多网站中,每个网页的基本框架都是一样的,比如,最上面都是网站的标题,中间是内容,最下面是网站的版权.开发提供商等信息: 在这些网页中,表头.底部的样式和内容都是一样的,不同的只是中间的内容. 因此在制作网站时,可以将这些共同的东西分离出来,放到"窗体母版页"中,在需要的时候嵌套就可以. 巧用窗体母版项: 下面就开始行动(本文是以Visual

  • 浅谈Asp.Net母版页的相关知识

    Asp.Net母版页的相关知识 母版页的使用与普通页面类似,可以在其中放置文件或者图形.任何的HTML控件和Web控件,后置代码等.母版页的扩展名以.master结尾,不能被浏览器直接查看.母版页必须在被其他页面使用后才能进行显示. 它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码.与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域. 母版页仅仅是一个页面模板,单独的母版页是不能被用户所访问的

  • asp.net母版页如何使用

    计算机专业的很多同学临近毕业了,才着急怎么做一个毕业设计来进行答辩,很短的时间是不可能完成的,今天就先跟着小编的步伐,学习asp.net母版页的使用,快速掌握这个实用技巧,相信一定在大家的毕业设计过程中发挥巨大的作用. 工具/原料 Visual Studio 2008 方法/步骤 打开Visual Studio 2008,点击[文件][打开网站]找到网站根目录文件夹,点击[打开] 在网站根目录上单击右键,选择[添加新项] 在弹出的[添加新项]选择[母版页]默认使用名称,点击[添加] 打开母版页的

  • ASP.NET母版页基础知识介绍

    模板页是做什么的? 利用模板页可以方便快捷的创建统一风格的ASP.NET网站,并且容易管理和维护,提高了效率. 模板页为网页定义所需要的外观和标准,在母版的基础上创建包含显示内容的各个内容页.当用户请求内容页时,这些内容页与母版页合并,这样,模板页的布局与内容页的布局就可以组合在一起输出了. 模板页一般用来: 1.通过修改模板页来处理网页的通用功能. 2.可以方便的创建一组控件和代码,并应用于一组网页. 3.通过允许控制占位符控件的呈现方式,模板页可以在细节上控制最终页的布局. 模板页与普通页

  • 浅谈Asp.Net母版页和内容页运行机制

    从上面的讲解中可以看出,单独的母版页是不能被用户所访问的.没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值.同样道理,单独的内容页没有母版页的支持,也不能够应用.这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能.为了便于读者理解,有必要讲解一下母版页与内容页的运行机制. 母版页和内容页的运行过程可以概括为以下5个步骤. 用户通过输入内容页的URL来请求某内容页. 获取内容页位置后,读取内容页@ Page指令.如果该指令引用一个母版页,则读取该母版页.

  • 浅谈ASP.NETCore统一处理404错误都有哪些方式

    目录 方式一 方式二 自定义通配路由 方式三 方式四 方式五 web.config <customErrors> 节点中配置ASP.NET管道处理404错误 总结 当未找到网页并且应用程序返回 404 错误时,ASP.NET Core MVC 仅呈现通用浏览器错误页面,如下图所示 这不是很优雅,是吗?我们平时看到的404页面一般是这样的 还有这样的 试了下京东,地址不存在的时候是会重定向到首页 下面就来演示下ASP.NET Core中如何实现这种自定义的404页面处理. 新建项目 ASP.NE

  • 浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法

    在HTTP POST请求中,我们多次在View和Controller中看下如下代码: 1.View中调用了Html.AntiForgeryToken(). 2.Controller中的方法添加了[ValidateAntiForgeryToken]注解. 这样看似一对的写法其实是为了避免引入跨站请求伪造(CSRF)攻击. 这种攻击形式大概在2001年才为人们所认知,2006年美国在线影片租赁网站Netflix爆出多个CSRF漏洞,2008年流行的视频网址YouTube受到CSRF攻击,同年墨西哥一

  • 浅谈ASP.NET Core 中jwt授权认证的流程原理

    1,快速实现授权验证 什么是 JWT ?为什么要用 JWT ?JWT 的组成? 这些百度可以直接找到,这里不再赘述. 实际上,只需要知道 JWT 认证模式是使用一段 Token 作为认证依据的手段. 我们看一下 Postman 设置 Token 的位置. 那么,如何使用 C# 的 HttpClient 访问一个 JWT 认证的 WebAPI 呢? 下面来创建一个 ASP.NET Core 项目,尝试添加 JWT 验证功能. 1.1 添加 JWT 服务配置 在 Startup.cs 的 Confi

  • 浅谈ASP.NET Core静态文件处理源码探究

    前言 静态文件(如 HTML.CSS.图像和 JavaScript)等是Web程序的重要组成部分.传统的ASP.NET项目一般都是部署在IIS上,IIS是一个功能非常强大的服务器平台,可以直接处理接收到的静态文件处理而不需要经过应用程序池处理,所以很多情况下对于静态文件的处理程序本身是无感知的.ASP.NET Core则不同,作为Server的Kestrel服务是宿主到程序上的,由宿主运行程序启动Server然后可以监听请求,所以通过程序我们直接可以处理静态文件相关.静态文件默认存储到项目的ww

  • 使用母版页时内容页如何使用css和javascript

    好处有了,问题也接着来了.原来在频道页和列表页中有其各自的css引入和一些javascript函数,当使用母版页时,放在内容页中这些css样式和javascript函数怎么处理呢?因为大家知道,使用母版页的内容页是不能包含<head></head>标记的,而css和javascript函数的声明是要放到<head></head>中间的,这些css样式和javascript函数如何处理呢?上网查了一下,大致有三种解决方案:方案一:把所有的css样式和javas

  • 浅谈java如何实现Redis的LRU缓存机制

    目录 LRU概述 使用LinkedHashMap实现 使用LinkedHashMap简单方法实现 双链表+hashmap LRU概述 最近使用的放在前面,最近没用的放在后面,如果来了一个新的数,此时内存满了,就需要把旧的数淘汰,那为了方便移动数据,肯定就得使用链表类似的数据结构,再加上要判断这条数据是不是最新的或者最旧的那么应该也要使用hashmap等key-value形式的数据结构. 使用LinkedHashMap实现 package thread; import java.util.Link

  • 浅谈ASP.NET Core的几种托管方式

    Kestrel Kestrel 是一个跨平台的适用于 ASP.NET Core 的 Web 服务器,默认包括在 ASP.NET Core 项目模板中. Kestrel 支持以下方案: HTTPS 用于启用 WebSocket 的不透明升级 用于获得 Nginx 高性能的 Unix 套接字 HTTP/2(除 macOS† 以外) 可以单独使用 Kestrel,也可以将其与反向代理服务器 (如 Internet Information Services (IIS).Nginx 或 Apache)结合

随机推荐