首页 > 代码库 > Rquest Request[""];Request.Form[""];Request.QueryString[""]

Rquest Request[""];Request.Form[""];Request.QueryString[""]

<1>

HTMLPage.htm页面  【请求页】

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
<!--如果不指定method属性,那么method的默认值就是get-->
<form action="Handler.ashx" method="post">
<input type="text" name="UserName" id="UserName" /><input type="submit"value=http://www.mamicode.com/"提交" />>


一般处理程序Handler.ashx页面 【处理页】

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler
{
    //request.form可以获取以post方式提交的数据,requst.querystring可以获取以get方法提交的数据,而request则是可以同时获取两种方法传递的数据;
    
    //按照速度来说:request.qeurystring 会略快于request.form 

    //按照传递数据量来说:request.form可以传递不限大小的数据,request.querystring只能传递2k的数据量

    //安装方便程度来说:request本身来的直接了,不管怎么传递的数据都能获取,性能略有下降,可忽略不计

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/html";

        //-------------------------------------------------------Request.QueryString[""]------------
        
        //当HTMLPage.htm页面的<form>表单的Method属性设为get的时候.Request.QueryString["UserName"]才会起作用,才能取到值
        string userName1 = context.Request.QueryString["UserName"];

        //-------------------------------------------------------Request.Form[""]-------------------

        //Request.Form是接收post方法的对象
        //当HTMLPage.htm页面的<form>表单的Method属性设为Post的时候Request.Form["UserName"]才会起作用,才能取到值
        string userName2 = context.Request.Form["UserName"];


        //--------------------------------------------------------Request[""]------------------------
        

        //不管HTMLPage.htm页面的<form>表单的Method属性设为Post还是get ,context.Request["UserName"]都能取到值
        string userName3 = context.Request["UserName"];


        //----------------------------------Request.RequestType-----获取HTTP传输方式-----------

        //获取或者设置客户端使用的HTTP数据传输方式(GET或POST)
        string requestType = context.Request.RequestType;
        
        
        
        
        
        context.Response.Write(userName1);
        context.Response.Write(userName2);
        context.Response.Write(userName3);

    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}