博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET模板使用--牛腩收仓
阅读量:4167 次
发布时间:2019-05-26

本文共 4092 字,大约阅读时间需要 13 分钟。

一、模板

      牛腩中的模板,和之前自己学习的模板方法的设计模式很想,不过牛腩中更加注重的界面的样式,实质上他们也算是亲戚。将很多页面上的常用的内容抽象出来,放在模板中,再次创建页面的使用可以在已经创建的模板的基础上进行添加内容。减少了内容的冗余,牛老师提到两种创建模板的方法,一种是模板页(MasterPage),另一种是添加用户控件(WebuserControl),小编今天两种方法都做一个简单的介绍。


二、模板页

2.1MasterPage

        确定公有内容,牛腩中每个页面中都有的内容是这个头部和尾部:

这里写图片描述

        所以我们可以建立一个模板只包含这两块的内容,选择程序集,右键添加,选择-masterpage:新建好号的模板中有如下的内容,只是一个框架

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site2.master.cs" Inherits="WebBlack.blog.Site2" %>    
<%--可变内容的区域,可视为容器,认为这里是精髓,灵活性的体现--%>

        我们在模板中天上头部和尾部,作为固定不变的部分,代码如下:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebBlack.Site1" %>
模板演示
<%--绑定上样式--%>
<%--固定内容1:头部--%>
<%--固定内容2:搜索--%>
<%--可变内容的区域,可视为容器,认为这里是精髓,灵活性的体现--%>
<%--固定内容3 尾部--%>

        这是模板的建完之后的效果图:

这里写图片描述

2.2子页面

        就该创建套用模板的页面了,新建ContentPage,这是我们可以选择模板site1了~

这里写图片描述

        创建好的页面,代码如下:

<%@ Page Title="" Language="C#" MasterPageFile="~/blog/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebBlack.blog.WebForm1" %>
<%--head和母版中的head位置对应--%>
<%--注意这里和模板中可变内容的ID对应着,所以这里填写自己独有的内容--%>

        这是我填写了内容之后的子页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/blog/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebBlack.blog.WebForm1" %><%@ Register src="WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>
<%--head和母版中的head位置对应--%>

三、用户控件(WebuserControl)

        右键创建一个WebuserControl,新建完后的代码如下:只有一行

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl2.ascx.cs" Inherits="WebBlack.blog.WebUserControl2" %>

        我们将内容直接放入放其中:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebBlack.blog.WebUserControl1" %>

新闻分类

        内容是这样的:

这里写图片描述

        这个如何使用呢?我们之前是选择模板,用户控件的话不是选择模板,也不能直接从代码中写,我们将子窗体,点到设计页面,将其拖进来,我们拖拽的位置如下:

这里写图片描述

        拖进来后会自动出现两行的代码,他们是:

这里写图片描述

        现在可以让大家看看子窗体最后的模样的,他是父窗体MasterPage的内容加上WebuserControl的内容加上自己独有的内容:

这里写图片描述


四、嵌套模板

        嵌套模板可以理解为二级模板,在模板的基处上建立另一个模板。右键新建嵌套模板:NestedMasterPage:

这里写图片描述

        选择模板,我们这里选择一级模板:

这里写图片描述

        建完之后的模板代码如下:

<%@ Master Language="C#" MasterPageFile="~/blog/Site1.Master" AutoEventWireup="true" CodeBehind="NestedMasterPage1.master.cs" Inherits="WebBlack.blog.NestedMasterPage1" %>
<%--这里包着的内容是套用改模板的页面可以特用的内容--%>

        一下的步骤就和咱们上面说的一级的模板一样的,这里就不赘述了,这里就是告诉大家我们不光可以建立模板,还可以建立嵌套模板~


五、结语

         这里的创建模板和模板方法设计模式很想,但是有一些不同的地方。创建模板我们把相同的内容拿出来,但是没有列出他们的框架,不同的地方我们可以自己任意添加,没有限制。而模板方法呢,在父类中定义了算法的框架和抽象行为,这行抽象的行为告诉你子窗体可以实现什么功能,我想也是这一点上有很明显的不同之处。 如下是模板方法模式的UML图,我们一起回顾一下吧。

这里写图片描述

你可能感兴趣的文章
Java核心技术 卷I 基础知识 学习笔记(4)
查看>>
Java核心技术 卷I 基础知识 学习笔记(5)
查看>>
Java核心技术 卷I 基础知识 学习笔记(6)
查看>>
微服务架构与实践 学习笔记(1)
查看>>
Java核心技术 卷I 基础知识 学习笔记(7)
查看>>
IDEA使用之让maven项目自动依赖jar包
查看>>
Java核心技术 卷I 基础知识 学习笔记(8)
查看>>
Java核心技术 卷I 基础知识 学习笔记(9)
查看>>
Intellij IDEA 创建资源文件夹 source folder
查看>>
Java核心技术卷2 高级特性 学习笔记(1)
查看>>
Java核心技术卷2 高级特性 学习笔记(4)
查看>>
最大乘积
查看>>
最长公共子串
查看>>
codeforces831c 思维
查看>>
CodeForces - 785C Anton and Fairy Tale
查看>>
CodeForces - 831D Office Keys
查看>>
hdu 1258 确定比赛名次
查看>>
hdu 3342 拓扑,是否存在环
查看>>
poj 1860 拓扑。。
查看>>
poj 2553 The Bottom of a Graph 未完
查看>>