仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 821|回复: 9
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之.net页面间的参数传送复杂实例

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。页面利用QueryString
利用QuerySting在页面间传送值已是一种很老的机制了,这类办法的次要长处是完成起来十分复杂,但是它的弱点是传送的值是会显现在扫瞄器的地点栏上的(不平安),同时又不克不及传送工具,可是在传送的值少而平安性请求不高的情形下,这个办法仍是一个不错的计划。利用这类办法的步骤以下:
1,利用控件创立web表单(form)
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里创立一个保留URL的字符变量
4,在保留的URL里增加QueryString参数
5,利用Response.Redirect重定向到下面保留的URL
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
stringurl;
url="anotherwebform.aspx?name="+TextBox1.Text+"&email="+TextBox2.Text;
Response.Redirect(url);
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
利用Session变量
利用Session变量是能够在页面间传送值的的另外一种体例,在本例中我们把控件中的值存在Session变量中,然后在另外一个页面中利用它,以分歧页面间完成值传送的目标。可是,必要注重的是在Session变量存储过量的数据会损耗对照多的服务器资本,在利用session时应当稳重,固然了,我们也应当利用一些清算举措往复除一些不必要的session来下降资本的无谓损耗。利用Session变量传送值的一样平常步骤以下:
1,在页面里增加需要的控件
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里,把控件的值增加到session变量里
4,利用Response.Redirect办法重定向到另外一个页面
5,在另外一个页面提取session的值,在断定不必要利用该session时,要显式扫除它
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
//textbox1andtextbox2arewebform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}
利用Server.Transfer
这个办法比拟下面先容的办法略微庞大一点,但在页面间值传送中倒是出格有效的,利用该办法你能够在另外一个页面以工具属性的体例来存取显现的值,固然了,利用这类办法,你必要分外写一些代码以创立一些属性以即可以在另外一个页面会见它,可是,这个体例带来的优点也是不言而喻的。整体来讲,利用这类办法是简便的同时又是面向工具的。利用这类办法的全部历程以下:
1,在页面里增加需要的控件
2,创立前往值的Get属性历程
3,创立能够前往表单的按钮和链接按钮
4,在按钮单击事务处置程序中挪用Server.Transfer办法转移到指定的页面
5,在第二个页面中,我们就能够利用Context.Handler属性来取得前一个页面实例工具的援用,经由过程它,就能够利用存取前一个页面的控件的值了
以下代码综合完成上述步骤历程的代码:
源页面代码:
把以下的代码增加到页面中
publicstringName
{
get
{
returnTextBox1.Text;
}
}
publicstringEMail
{
get
{
returnTextBox2.Text;
}
}
然后挪用Server.Transfer办法
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
//createinstanceofsourcewebform
WebForm1wf1;
//getreferencetocurrenthandlerinstance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}

在ASP.NET2.0中启用了跨页面传送功效,其功效和用法在今后在做先容!
页面之间传送值
体例1:

在吸收页的html代码里加上一行:<%@ReferencePage="WebForm1.aspx"%>

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

Context供应对全部以后高低文(包含哀求工具)的会见。您可使用此类共享页之间的信息。
体例2:GET体例
在发送页
publicintsum=0;
inti=int.Parse(this.TextBox1.Text)*2;
Server.Transfer("WebForm2.aspx?sum="+i);
吸收页
this.TextBox1.Text=Request["sum"].ToString();
orthis.TextBox1.Text=Request.Params["sum"].ToString();
this.TextBox1.Text=Request.QueryString["sum"];

办法3:全局变量
发送页:
Application["sum"]=this.TextBox1.Text;
Server.Transfer("WebForm2.aspx");
吸收页:
this.TextBox1.Text=(string)Application["sum"];
Application本色上是全部假造目次中一切文件的汇合,假如想在全部使用局限内利用某个变量值,Application工具将是最好的选择
在这里用Session[""]的办法相同
办法4:
发送页:
1.界说静态变量:publicstaticstringstr="";
2.str=this.TextBox1.Text;
Server.Transfer("webform2.aspx");
吸收页:
1.引进第一页的定名空间:usingWebApplication1;
2this.TextBox1.Text=WebForm1.str;
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)
海妖 该用户已被删除
沙发
发表于 2015-1-19 09:08:51 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
乐观 该用户已被删除
板凳
发表于 2015-1-24 11:40:08 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-1 09:44:31 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
莫相离 该用户已被删除
5#
发表于 2015-2-7 02:13:31 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
再见西城 该用户已被删除
6#
发表于 2015-2-19 19:31:28 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
变相怪杰 该用户已被删除
7#
发表于 2015-3-6 15:20:20 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
小魔女 该用户已被删除
8#
发表于 2015-3-13 03:09:53 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
不帅 该用户已被删除
9#
发表于 2015-3-13 03:09:53 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
小女巫 该用户已被删除
10#
发表于 2015-3-20 11:22:13 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表