且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-02-06 10:46:36

文章回顾:
 
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 大体整体机制都讲的差不多的,有兴趣的朋友可以好好了解下本系列文章。
系列还没完,精彩还在后面,敬请关注!




     本文转自cyq1162 51CTO博客,原文链接:http://blog.51cto.com/cyq1162/530775,如需转载请自行联系原作者