ASP.NET画面跳转实现及其传值问题解决方案
创始人
2024-04-21 16:00:33
0

画面跳转和传值问题,一直以来都在困扰着刚刚接触asp.net web应用程序的开发者,现罗列跳转方法和传值方式供大家参考;因为我本身参与的项目功能也比较单一,对此可能认识比较狭隘,希望各位多给提示帮助我进步。此文为我项目组新近员工解惑同时与各位交流共勉。

asp.net web画面跳转的方法如下:

1.Server.Execute

Server.Execute并不能完全算是画面跳转方法,它是实现动态调用页面并渲染其内容反映到当前页面的方法,之所以放在这里是想与Server.Transfer等做一个比较。使用场景主要是有“包含”关系的页面进行动态调用的时候,例如WebForm2.aspx作为WebForm1.aspx的一部分表示在后者的画面中,则可通过在WebForm1适当的位置声明< % Server.Execute("~/WebForm2.aspx") %>实现。

2.Server.Transfer

最节省资源的画面跳转方式,可保存前画面的URL查询字符串和表单信息,可在跳转目标画面中使用PreviousPage查询跳转前画面属性。Server.Transfer过程中没有发生HTTP请求,所以不会被HTTP Module和HTTP Handler捕捉到,无法写处理器;其本质是在服务器端直接进行页面“切换”,所以也就有客户端URL显示不正确,引发一系列的问题,如:URL相对路径问题、Sitemap问题等。

3.Response.Redirect

此命令将直接在次返回到客户端通过URL重定向到跳转目标页面,比Server.Transfer多了一次客户端和服务器端之间的往返,因为是纯粹URL重定向无法保存前画面状态,传值一般使用URL查询字符串或Session传值。

4.PostbackUrl属性

以HTTP POST方式请求下一个画面,可以保存跳转前画面状态,问题是POST发生于客户端,无法在服务器端实现验证和取消跳转的逻辑。

5.HTML链接

URL重定向,缺点与PostbackUrl一样发生在客户端只能通过URL查询字符串进行传值。

asp.net web画面跳转的传值方法如下

1.URL传值

因为URL长度限制,所以无法传送大量数据。对于敏感数据需要进行加密。

2.表单HTTP POST传值

 以HTTP POST方式将表单属性传回到服务器端,能够保存前画面状态,可以通过PreviousPage属性进行查询。

3.PreviousPage属性传值

其实就是使用Server.Transfer和HTTP POST方式的画面跳转会把表单内容推送到服务器端,所以跳转后可以通过此属性获得前画面信息。

4.Session传值

代价比较大的方式,需要注意Session变量的生命周期在不需要的时候显式注销对象;对于集群之间的数据共享有很好的解决方案,但是把Session变量保存在数据库中要有慢25%的代价,这就需要考虑Web服务器和数据库服务器的性能。

以上,便介绍了asp.net web画面跳转的实现以及传值问题的解决方法。

【编辑推荐】

  1. ASP.NET DetailsView中显示选中产品的详细信息
  2. ASP.NET 2.0数据教程:GridView选择行
  3. ASP.NET 2.0数据教程:GridView显示数据
  4. ASP.NET 2.0中添加GridView到页面
  5. 新增ASP.NET页面时的注意事项

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...