博客
关于我
秋色园QBlog技术原理解析:Module之页面基类设计(五)
阅读量:426 次
发布时间:2019-03-06

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

1:介绍整体文件夹和文件的作用

2:介绍秋色园业务处理流程

3:介绍如何实现无后缀URL

4:介绍URL如何定位到处理程序

ps:下载地址:

本节将为大家介绍如何设计一个页面的基类,并解析该基类的设计方案。

传统的页面基类通常继承自System.Web.UI.Page,如下所示:

共用页面基类 public class PageBase : System.Web.UI.Page { }

继承的原因包括:

1:为了处理某些共同逻辑,减少代码复制,统一处理某些事情

2:基于开发习惯,需要使用丰富的服务器控件和ViewState等功能

3:早已习惯WebForm开发,尽管最近MVC开发逐渐流行

在一些内部系统或站点管理后台中,我常用该基类来处理以下内容:

1:用户权限管理

2:常见方法封装,包括服务端方法和脚本方法

3:列表控件(如Repeater、DataList、GridView)的进一步控制

4:其他功能

System.Web.UI.Page类的继承结构如下:

public class Page : TemplateControl, IHttpHandler { public const string postEventArgumentID = "__EVENTARGUMENT"; public const string postEventSourceID = "__EVENTTARGET";
public Page()  {  }

其关键点在于:

为了实现与丰富的服务器控件打交道,继承自TemplateControl,并引入ViewState

同时也被世人所鄙视,甚至将网站运行慢的原因归咎于ViewState

有部分人选择MVC的原因之一就是避免ViewState,并且得到更干净的HTML输出。例如:

在站点的HTML源代码中,很难找到ViewState的影子时,人们会误以为是MVC开发的

但实际上,这并不意味着一定是MVC开发的

没有ViewState并不一定是MVC开发的,可能是通过截断输出并对HTML进行替换处理

接下来,我们将设计一个属于自己的页面基类,继续这个话题。

基类设计原则:

该基类继承自IHttpHandler

如:

public abstract class HttpCustom : IHttpHandler

具体实现包括:

创建属于自己的页面生存周期方法

如:

public static void RegisterPageLifeCycle(object sender, EventArgs e)

在流程中:

创建Default.ashx处理程序,继承自HttpCustom

并重写Page_Load方法

最终实现了属于自己的页面生存周期

总结:

本节介绍了传统Page基类的使用,并展示了我们如何设计一个自定义基类HttpCustom,继承自IHttpHandler

下一节将解析如何实现页面的加载与呈现,以及如何处理事件请求

转载地址:http://qrwuz.baihongyu.com/

你可能感兴趣的文章
opencv中读写视频
查看>>
opencv之cv2.findContours和drawContours(python)
查看>>
opencv之namedWindow,imshow出现两个窗口
查看>>
opencv之模糊处理
查看>>
Opencv介绍及opencv3.0在 vs2010上的配置
查看>>
OpenCV使用霍夫变换检测图像中的形状
查看>>
opencv保存图片路径包含中文乱码解决方案
查看>>
OpenCV保证输入图像为三通道
查看>>
OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
opencv图像分割2-GMM
查看>>
opencv图像分割3-分水岭方法
查看>>
opencv图像切割1-KMeans方法
查看>>
OpenCV图像处理篇之阈值操作函数
查看>>
OpenCV图像的深浅拷贝
查看>>
OpenCV学习(13) 细化算法(1)(转)
查看>>
OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
查看>>
OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
查看>>
OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
查看>>
OpenCV官方文档 理解k - means聚类
查看>>
OpenCV探索
查看>>