Request、Request.Form和Request.QueryString的区别

 

Request、Request.Form和Request.QueryString的区别html

Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);web

Request.QueryString:获取地址栏参数(以GET方式提交的数据)ide

Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。函数

       并且有时候也会获得不一样的结果。若是你仅仅是须要Form中的一个数据,可是你使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。若是正好你的QueryString或者ServerVariable里面也有同名的项,你获得的就不是你本来想要的值了。编码

 

ASP.NET -- Request.Form详解code

一、单个值
Request.Form["fieldName"];orm

二、多个值的状况下
String[] tempArray;
tempArray = Request.Form.GetValues("fieldName");
Response.Write(tempArray[0]);    //打印第一个成员htm

三、若是提交到其余页面呢
WEB FORM中表单是提交回当前页面处理的。若是你要传到另外一个页面处理,能够用:
Server.Transfer("b.aspx", true);blog

这样,全部的表单字段,QueryString参数均可以在b.aspx中获得。get

id = Request.Params["id"];
或 id = Request.QueryString["id"];
或 id = Request.Form["id"];

 

[转]ASP.NET接收Request.Form传值为乱码解决办法

        曾经涉及到用URL传递汉字总少一个字,后来得知是UTF-8编码的问题,最好经过Server.Urlencode后再传递。

此次遇到aspx页面接收html页面里的一个input值,经过Request.Form["test"]获得的是乱码。考虑可能一样是编码问题,首先想把传递过来的值由UTF-8转换为GB2312,因而写了个转换函数:

不知是函数不对,仍是没有对症,转换后的值仍为乱码(就是一堆问号)。

       //content是要转编码的内容,sourceCode是原来的编码名称,targetCode是要转换成的编码名称

        public static string StrConvCode(string content,string sourcCode,string targetCode)
         {
             Encoding source =Encoding.GetEncoding(sourcCode);
             Encoding target = Encoding.GetEncoding(targetCode);
             byte[] bSource= source.GetBytes(content);
             byte[] bTarget = Encoding.Convert(source, target, bSource);
             return target.GetString(bTarget);
         }

再一次查询,后来偶尔发如今vs2003里web.config里有<globalization responseEncoding="gb2312" requestEncoding="gb2312"/>,考过来,ok好用了。在网上看到有的在globalization 里写的更多,但我用的时候会产生页面乱码,但传过来的值是正确的状况。

相关文章
相关标签/搜索