网页间传递参数:.net如何实现页面间的参数传递



使用QueryString
使用QuerySting在页面间传递值已经是种很老机制了这种思路方法主要优点是实现起来非常简单然而它缺点是传递值是会显示在浏览器地址栏上(不安全)同时又不能传递对象但是在传递值少而安全性要求不高情况下这个思路方法还是个不错方案使用这种思路方法步骤如下:
1使用Control控件创建web表单(form)
2创建可以返回表单按钮和链接按钮
3在按钮或链接按钮单击事件里创建个保存URL变量
4在保存URL里添加QueryString参数
5使用Response.Redirect重定向到上面保存URL
下面代码片断演示了如何实现这个思路方法:
源页面代码:
private void Button1_Click
(object sender, .EventArgs e)
{
url;
url=\"anotherwebform.aspx?name=\" + TextBox1.Text + \"&email=\" + TextBox2.Text;
Response.Redirect(url);
}
目标页面代码:
private void Page_Load
(object sender, .EventArgs e)
{
Label1.Text=Request.QueryString[\"name\"];
Label2.Text=Request.QueryString[\"email\"];
}

使用Session变量
使用Session变量是可以在页面间传递值种方式在本例中我们把Control控件中值存在Session变量中然后在另个页面中使用它以区别页面间实现值传递但是需要注意是在Session变量存储过多数据会消耗比较多服务器资源在使用session时应该慎重当然了我们也应该使用些清理动作来去除些不需要session来降低资源无谓消耗使用Session变量传递值般步骤如下:
1在页面里添加必要Control控件
2创建可以返回表单按钮和链接按钮
3在按钮或链接按钮单击事件里把Control控件值添加到session变量里
4使用Response.Redirect思路方法重定向到另个页面
5在另个页面提取session在确定不需要使用该session时要显式清除它
下面代码片断演示了如何实现这个思路方法:
源页面代码:
private void Button1_Click
(object sender, .EventArgs e)
{
//textbox1 and textbox2 are webform
//controls
Session[\"name\"]=TextBox1.Text;
Session[\"email\"]=TextBox2.Text;
Server.Transfer(\"anotherwebform.aspx\");
}
目标页面代码:
private void Page_Load
(object sender, .EventArgs e)
{
Label1.Text=Session[\"name\"].;
Label2.Text=Session[\"email\"].;
Session.Remove(\"name\");
Session.Remove(\"email\");
}

使用Server.Transfer
这个思路方法相比上面介绍思路方法稍微复杂但在页面间值传递中却是特别有用使用该思路方法你可以在另个页面以对象属性方式来存取显露当然了使用这种思路方法你需要额外写些代码以创建些属性以便可以在另个页面访问它但是这个方式带来好处也是显而易见总体来说使用这种思路方法是简洁同时又是面向对象使用这种思路方法整个过程如下:
1在页面里添加必要Control控件
2创建返回值Get属性过程
3创建可以返回表单按钮和链接按钮
4在按钮单击事件处理Server.Transfer思路方法转移到指定页面
5在第 2个页面中我们就可以使用Context.Handler属性来获得前个页面例子对象引用通过它就可以使用存取前个页面Control控件值了
以下代码综合实现上述步骤过程代码:
源页面代码:
把以下代码添加到页面中
public Name
{
get
{
TextBox1.Text;
}
}

public EMail
{
get
{
TextBox2.Text;
}
}
然后Server.Transfer思路方法
private void Button1_Click
(object sender, .EventArgs e)
{
Server.Transfer(\"anotherwebform.aspx\");
}
目标页面代码:
private void Page_Load
(object sender, .EventArgs e)
{
//create instance of source web form
WebForm1 wf1;
//get reference to current handler instance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}


在ASP.NET 2.0中启用了跨页面传送功能其功能和使用方法在以后在做介绍!



页面的间传递值

方式1:

在接收页 html代码里加上行: <%@ Reference Page = \"WebForm1.aspx\" %>

WebForm1 fp=(WebForm1)Context.Handler;
this.TextBox1.Text=fp.name; //name 是第public变量


Context 提供对整个当前上下文(包括请求对象)访问您可以使用此类共享页的间信息

方式2:GET方式
在发送页
public sum=0;

i =.Parse(this.TextBox1.Text)*2;

Server.Transfer(\"WebForm2.aspx?sum=\"+i);

接收页
this.TextBox1.Text=Request[\"sum\"].;
or this.TextBox1.Text=Request.Params[\"sum\"].;
this.TextBox1.Text=Request.QueryString[\"sum\"];


思路方法3:全局变量

发送页:
Application[\"sum\"]=this.TextBox1.Text;
Server.Transfer(\"WebForm2.aspx\");

接收页:
this.TextBox1.Text=()Application[\"sum\"];

Application实质上是整个虚拟目录中所有文件集合如果想在整个应用范围内使用某个变量值Application对象将是最佳选择



在这里用Session[\"\"]思路方法雷同

思路方法4:

发送页:
1.定义静态变量: public str=\"\";
2. str=this.TextBox1.Text;
Server.Transfer(\"webform2.aspx\");
接收页:
1.引入第命名空间:using WebApplication1;
2 this.TextBox1.Text=WebForm1.str;

Tags:  jsp参数传递 参数传递 页面间js传递 网页间传递参数

延伸阅读

最新评论

发表评论