首页 > 代码库 > C# 页面之间传值传参的6种方法

C# 页面之间传值传参的6种方法

.QueryString传值

  QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。在传递一个或多个安全性要求不高或是结构简单的值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法。如下段代码:

a.aspx中的代码
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中的代码
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
} 

 query传值又分类 post,get  例如

//post请求
string name =Request["name"].ToString();
string name=Request.From.Get("name").ToString();

//get请求
string name = Request.QueryString["name"].ToString();

无论它是post还是get传值都可以用如下

string name = Request["name"].ToString();

表单提交中getpost方式的区别归纳如下几点:

1.get是从服务器上获取数据,post是向服务器传送数据。

2.get是把参数数据队列加到提交表单中的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URl中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这和过程。

3.对于get方式,服务器端用Request.QuertString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

4.get传送的数据量较小,不能大于2KB。post传送的数据较大,一般被默认为不受限制。但理论上IIS4中最大为80KB,IIS5中为100KB。

5.get安全性非常低,post安全性较高。

 

二.使用Application 对象变量:

   Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序范围共享,所有用户可以改变及设置其值,故只应计数器等需要全局变量的地方。其常用的方法用Lock和UnLock。

 

private void Button1_Click(object sender, System.EventArgs e)
{
     Application["name"] = Label1.Text;
     Server.Transfer("b.aspx");
}

b.aspx中的代码

private void Page_Load(object sender, EventArgs e)
{
     string name;
     Application.Lock();
     name = Application["name"].ToString();
     Application.UnLock();
}

三.使用Session变量

   Session其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

C# 页面之间传值传参的6种方法