Request 扩展

asp.net编程中,经常要传递参数,获取参数;

以get形式传参为例,获取参数时,要这样写
            int id;
            if (Request.QueryString["id"] != null)
            {
                id = Convert.ToInt16(Request.QueryString["id"].Trim());
            }

首先判断该参数是否存,然后获取并转为数值型。其实,即便如此,上面的代码也是不够安全的,例如,id等于空,或是非数字字符,都会出错的。

要写一个完整的参数获取代码,真是挺烦的,而且这种代码,会经常的用到。于是决定写一个东西专门处理它。

两个类:Extend.Request用来获取参数,Parameter用来处理参数(后面会提供代码)。代码很简单,但还算实用

实现前面的效果,用如下代码即可:
int id = Extend.Request.QueryString["id"].Int16 ?? 0;

获取id参数后,后面缀上Int16,就转为int型了,如果参数不存在,或异常,会返回空;?? 的意思是,如果为空,就返回后面的0(即你自己设定的默认值);

当然,这个Extend.Request,不止可以获取QueryString参数,还要获取如下几种形式的参数:
1、Cookies (例如Extend.Request.Cookie ["id"].Int16
2、Session
3、Form
4、QueryString
5、TextBox (例如Extend.Request.TextBox[tbPw].MD5

当然Parameter,也不止提供将参数转为Int型的方法,还提供如下几种转换:
String
Boolean
DateTime
Double
Int16
Int32
Int64
MD5(返回参数md5加密后的字符串)
UrlDecode(返回参数URL解码后的字符串)
HtmlDecode(返回参数HTML解码后的字符串)

代码点儿长,一篇文章提交不完,再续两篇吧。下面是代码

Request扩展的代码(Requst类)
Request扩展的代码(Parameter类)

posted @ 2008-12-24 11:24  songsoft  阅读(662)  评论(2编辑  收藏  举报