QBlog

This blog will record the growth associated with the Autumn Garden distance and the history of the development progress and other relevant circumstances
Bulletin
Welcome to Autumn Garden official blog, please: download and use CYQBlog system, and make your comments and Recommendations.
Article Archive
Article
秋色园QBlog技术原理解析:页面Post提交机制(十一)
2011/3/28 20:06:34

文章回顾:

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

上几节回顾:

事隔多天,由于最近在加大 秋色园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" />

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

</form>

说明:

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

三:具体界面ASHX处理程序

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

说明:

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

总结:

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

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

下一篇:秋色园QBlog技术原理解析:性能优化篇:字节与缓存与并发(十二) --介绍性能优化:字节,并发及缓存

Autumn Garden is QBlog the official site, created by the passing autumn, based on the framework data layers developed cyqdata support multi-user, multi-language, multi-database (access, mssql, oracle), directory level url and other powerful blog system
 Tech Analysis   Browse(9341)   Comment(0)   Tag 秋色园,qblog,cyqblog,net,博客,原理,解析,页面,post提交机制
:Register
  
Copyright © 2010-2020 power by CYQ.Blog - Autumn v2.0 All Rights Reserved