在web程序中,经常会使用在一个网页使用其他网页提交的数据信息,这里可以使用Request内置对象来完成,来获取用户提交的信息,根据客户端提交数 据方式的不同,Request对象分别使用Form和QueryString集合属性来获取数据。下面是两种集合获取方式的不同点:通过Form获取数据 时在form属性中简单的添加action=“跳转的网页地址”,<form ID="id号 " runat=“sever” action=“要跳转的网页URL”> </form>,该传参方式是隐式的,不容易暴露;另一种方式是通过get方法提交表单数据,或页面导向通过 “URL?Parameter=Value”格式传递参数值时,即使用Request对象QueryString属性获取传递过来的信息,这个传参方式一 般不建议使用,因在URL之后,所以容易在浏览器暴露参数,容易遭受黑客的攻击,再者是URL的字节数有限,即传递的参数有限,所以不建议使用 QueryString。
这里需要建立两个web程序页,第一个Default.aspx页中运用各种控件,第二个是在get-form.aspx的后台代码中在页面加载的 时候获得Default.aspx页中,用户提交的信息数据。
Default.aspx的html代码:
1
|
<%@ Page Language=
"C#"
AutoEventWireup=
"true"
CodeBehind=
"Default.aspx.cs"
Inherits=
"form._Default"
%><br><br><!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
><br><br><html xmlns=
"http://www.w3.org/1999/xhtml"
><br><head runat=
"server"
><br> <title>无标题页</title><br></head><br><body><br> <form id=
"Form1"
action=
"get_form.aspx"
method=
"post"
><br> <div style=
"text-align:center"
><br> 填写用户信息<br> <hr style=
"size:50%"
/><br> </div><br> <div style=
"text-align:left"
><br> 用户名:<input name=
"user_name"
type=
"text"
/><br /><br> 密码: <br> <input name=
"Password1"
type=
"password"
/><br /><br> 确认密码:<input name=
"Password2"
type=
"password"
/><br /><br> 性别:<input name=
"女"
type=
"radio"
value=
"女"
/>女<input id=
"Radio1"
type=
"radio"
value=
"男"
name=
"sex"
/>男<br /><br> 上传照片:<input id=
"File1"
type=
"file"
name=
"picture"
/><br /><br> <br> <br /><br> <br> <input type=
"submit"
value=
"提交"
/> <br> <input type=
"reset"
value=
"重置"
/></div><br> </form><br></body><br></html><br><br>
get
-form.aspx后台代码:<br><pre
class
=
"brush:csharp"
>
using
System;<br>
using
System.Collections;<br>
using
System.Configuration;<br>
using
System.Data;<br>
using
System.Linq;<br>
using
System.Web;<br>
using
System.Web.Security;<br>
using
System.Web.UI;<br>
using
System.Web.UI.HtmlControls;<br>
using
System.Web.UI.WebControls;<br>
using
System.Web.UI.WebControls.WebParts;<br>
using
System.Xml.Linq;<br><br>
namespace
form<br>{<br>
public
partial
class
get_form : System.Web.UI.Page<br> {<br>
protected
void
Page_Load(
object
sender, EventArgs e)<br> {<br> Response.Write(
"利用 Response对象获取客户端数据"
);<br> Response.Write(
"<hr/>"
);<br>
string
[] names = Request.Form.AllKeys;//定义name保存表单中的所有键即元素名称<br>
for
(
int
i = 0; i < names.Length; i++)<br> {<br>
string
[] values = Request.Form.GetValues(i);//定义values保存表单中所有键的键值<br>
for
(
int
j = 0; j < values.Length; j++)<br> Response.Write(names[i]+
"="
+values[j]+
"<br/>"
);<br> }//通过循环表单中的键和键值,用 Response.Write输出<br> }<br> }<br>}<br><br></pre><br>原始效果图:
|
填完信息提交后:
用form属性将用户的信息数据提交给另一个网页,可以很好的避免一些问题,并且可以再另外的网页中通过循环把信息输出,不涉及控件中的id号,感 觉比较好用。
本文转自shenzhoulong 51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/313138,如需转载请自行联系原作者