秋色园QBlog技术原理解析:页面Post提交机制(十一)

2年前 (2022) 程序员胖胖胖虎阿
296 0 0

文章回顾:

1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用

2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程

3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL

4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序

5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期

6: 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六) --介绍基类生命周期内部业务

7: 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理

8: 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八) --介绍html的内容是如何填充

9: 秋色园QBlog技术原理解析:独创的多语言翻译机制(九) --介绍html多语言翻译原理

10: 秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十) --总结演示示例代码

附章:

1:秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理

2:如何安装部署秋色园CYQBlog站点

3:Windows7下如何安装部署秋色园CYQBlog站点

 

ps:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427

 

上几节回顾:

事隔多天,由于最近在加大 秋色园QBlog 的优化力度和 秋式开源团队 的一些事情,所以写文速度就缓慢了些,今天继续:

上几节中,主要发布了前面十节的总结演示示例,同时开源了 秋色园QBlog 后台管理系统和一键安装工具,有兴趣的不妨研究研究,相信还是能找到一些不同以往的理念的。

本节将再续前缘,为大伙揭开 秋色园QBlog 的Post提交机制。

 

入手简说:

秋色园QBlog 的Post提交机制,其实很简单:
1:html中在Form中通过放置一个隐藏域
2:当Form提交到后台时,通过隐藏域的约定名称和值来区分并触发Post事件。
3:自定义生命流程中,简单的有相关的处理。

 

一:自定义流程中的Post处理机制

 

先上图一张用过几次的图片:

秋色园QBlog技术原理解析:页面Post提交机制(十一)

 

说明:

这是 秋色园QBlog 自定义生命流程中的第二个生命周期,Post触发机制就在这里。

OnPost:protected virtual void OnPost(){ },这是一个虚函数,将由各页面负责重写与处理。

在调用这函数之前,前面有几个小判断,和一个比较特别的PostBufferOK函数。

PostBufferOK:这是一个缓冲机制,除了可以防止二次提交,还带一定范围的秒杀代码提交功能。

PS:以前经常发现有老外经常性往 秋色园QBlog 发乱七杂八的带链接的评论,于是屏蔽之,说明老外也有这种爱好。

 

二:界面对应的隐藏域

 

基本html:

<form method="post" enctype="multipart/form-data">
        <input type="hidden" name="myAct" value="Setting" />

...然后这里是一些提交的文本框,和一个提交按钮,有enctype的说明是带有上传功能的。

</form>

说明:

隐藏域的name约定为myAct,和后台对应,而value,则留待给处理程序作为相应的分支,点击一个submit类型的button提交后,就到上面的自定义生命流程中,然后再分给下面的具体页面处理。

 

三:具体界面ASHX处理程序

 

看一下 秋色园QBlog 中文章评论的提交事件是怎么处理的:

秋色园QBlog技术原理解析:页面Post提交机制(十一)

 

说明:

根据隐藏域的value,用switch来区分事件处理即可,提交过来的值怎么获取?
答案:Request[控件的name]

 

总结:

本节,比较简单的介绍了 秋色园QBlog 的Post提交机制,至此,秋色园QBlog 大体整体机制都讲的差不多的,有兴趣的朋友可以好好了解下本系列文章。

系列还没完,精彩还在后面,敬请关注!

相关文章

暂无评论

暂无评论...