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;
}