文章回顾:
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技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理
上几节回顾:
上几节中,主要发布了前面十节的总结演示示例,同时开源了 秋色园QBlog 后台管理系统和一键安装工具,有兴趣的不妨研究研究,相信还是能找到一些不同以往的理念的。
本节将再续前缘,为大伙揭开 秋色园QBlog 的Post提交机制。
入手简说:
秋色园QBlog 的Post提交机制,其实很简单:
1:html中在Form中通过放置一个隐藏域
2:当Form提交到后台时,通过隐藏域的约定名称和值来区分并触发Post事件。
3:自定义生命流程中,简单的有相关的处理。
一:自定义流程中的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" />
<input type="hidden" name="myAct" value="Setting" />
...然后这里是一些提交的文本框,和一个提交按钮,有enctype的说明是带有上传功能的。
</form>
说明:
隐藏域的name约定为myAct,和后台对应,而value,则留待给处理程序作为相应的分支,点击一个submit类型的button提交后,就到上面的自定义生命流程中,然后再分给下面的具体页面处理。
三:具体界面ASHX处理程序
看一下 秋色园QBlog 中文章评论的提交事件是怎么处理的:
说明:
根据隐藏域的value,用switch来区分事件处理即可,提交过来的值怎么获取?
答案:Request[控件的name]
总结: