20160113007 跳转的页面传递参数

时间:2022-04-12 23:21:19

 

 

1. asp.net(c#)网页跳转七种方法小结

   http://www.jb51.net/article/21046.htm

2. 跳转的页面传递参数

 

   webform1.aspx中:
   Response.Redirect("webform2.aspx?id=3");
   webform2.aspx中:
   string id=Request["id"];  //这样就传递过来了

 

 

3. 隐藏地址栏的参数

 

   2.1 简单的方法把Response.Redirect改为Server.Transfer,如
         Response.Redirect("test.aspx?user=123");
        改为
            Server.Transfer("test.aspx?user=123");

 

   2.2  post,session,cookie等等都可以

 

   2.3  Cookie传递!

         page1.aspx传递参数: Response.Cookies.Add(key,value);

         page2.aspx接受参数: string value = Request.Cookies[key].value;

 

   2.4  利用表单传递数据/Post方法(写的是html代码);

         获取表单的字段值语法:Request.Form["控件name属性"]; 可以省略为      Request["  控件name属性"];

         使用Post方法需注意:

        1.Form窗体不能运行在服务器端,要把runat=server要去掉,需要在<form>标           记中添加action属性,将标记中的method属性设置为post;

        2:控件要使用HTML控件

        3:获取值的页面只识别控件的name属性,所以需要对控件需要添加name属性

 

 

4、使用session变量

使用session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把session变量的值removed后,变量才会消失。举个例子看看:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个textbox1,textbox2
3、为button按钮创建click事件
代码如下:
private void button1_click
(object sender, system.eventargs e)
{
        session["name"]=textbox1.text;
 session["email"]=textbox2.text;
 response.redirect("webform2.aspx");
}
4、新建一个目标页面命名为webform2
5、在webform2中放置两个label1,label2
在webform2的page_load中添加如下代码:
private void page_load
(object sender, system.eventargs e)
{
 label1.text=session["name"].tostring();
 label2.text=session["email"].tostring();
 session.remove("name");
 session.remove("email");
}
运行,即可看到传递后的结果了。

5、使用server.transfer
虽然这种方法有点复杂,但也不失为一种在页面传值的方式。
举个例子看看:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个textbox1,textbox2
3、为button按钮创建click事件
代码如下:
private void button1_click
(object sender, system.eventargs e)
{
 server.transfer("webform2.aspx");
}
4、创建过程来返回textbox1,textbox2控件的值代码如下:
public string name
{
 get
 {
  return textbox1.text;
 }
}

public string email
{
 get
 {
  return textbox2.text;
 }
}
5、新建一个目标页面命名为webform2
6、在webform2中放置两个label1,label2
在webform2的page_load中添加如下代码:
private void page_load
(object sender, system.eventargs e)
{
 //创建原始窗体的实例
 webform1 wf1;
 //获得实例化的句柄
 wf1=(webform1)context.handler;
 label1.text=wf1.name;
 label2.text=wf1.email;

}