博客
关于我
强烈建议你试试无所不能的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图,我们一起回顾一下吧。

这里写图片描述

你可能感兴趣的文章
c语言的null和0
查看>>
二进制详解:世界上有10种人,一种懂二进制,一种不懂。
查看>>
c语言一个字符变量存储多个字符
查看>>
java接口中方法的默认访问修饰符为public
查看>>
java多线程之并发synchronized
查看>>
java多线程之并发Lock
查看>>
微信公众平台基础配置
查看>>
jpa 和 hibernate 的联系
查看>>
SpringBoot之@SpringBootApplication注解
查看>>
ajax 传JSON 写法
查看>>
SpringBoot之web发展史
查看>>
SpringBoot之开发web页面
查看>>
SpringBoot之快速部署
查看>>
springBoot之jar包在后台(运行:编写start、stop脚本)
查看>>
redis学习
查看>>
SpringBoot之application.properties文件能配置的属性
查看>>
javaWeb监听器、过滤器、拦截器
查看>>
RESTFUL风格的接口
查看>>
后台参数验证配置
查看>>
SpringBoot之外置Tomcat配置
查看>>