在Form里面,可以使用post也可以使用get。它们都是method的合法取值,但是两者也有不同,主要区别在于传递和获取参数的方式不同
一、Get方法:
1、参数的传递方式:通过URL请求来传递用户的输入。即在地址栏中可以看到我们提交所传递的参数,这也是浏览器默认的传递参数方式
2、获取所传递的参数:
Get方式的提交你需要用Request.QueryString来取得变量的值
3、传递的参数长度限制
Get方式传递的参数长度限制在2KB以内
实例:
传递参数页页面get.html
<html>
<body>
<form name="form1" method="GET" action="server.html">
输入名字: <input type="text" name="u">
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
提交到的页面:server.html
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
var request={
QueryString : function(val)
{var uri = window.location.search;
var re = new RegExp("" +val+ "=([^\&\?]*)", "ig");
return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null); }
}
var u = request.QueryString("u");
var l = request.QueryString("l");
document.writeln("Hello! " + u);
</SCRIPT>
</head>
<body>
</body>
</html>
二、Post方法:
1、参数的传递方式:Post参数是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。
2、获取所传递的参数:
Post方式提交时,你必须通过Request.Form来访问提交的内容。
3、传递的参数长度限制
Post传送的数据量较大,一般被默认为不受限制
实例:
前台表单:
<form id="fm" method="post" novalidate runat="server">
<input type="hidden" id="test" name="test" />
</form>
后台处理程序
提交到后台一般处理程序
public void ProcessRequest(HttpContext context)
{
//调试
if (null != context.Request.Form["id"])
{//获取前台传来的值
string category = context.Request.Form["test"].ToString().Trim();
}
string command =context.Request.Form["test"].ToString().Trim();//前台传的标示值
{//调用查询方法
Query(context);
}
}
三、小结: