重点总结
目前为止在ASP.NET网页中传递数据的方式至少有5种:
1、通过查询字符串传递数据。
2、通过HTTP POST传递数据。
3、通过会话状态传递数据。
4、通过源页的公共属性传递数据。
5、通过源页中的控件值传递数据。
到底使用哪种方式来进行数据的传递,这可能受到两方面的影响:
1、页面重定向的方式。
2、源页和目标页是否位于相同的ASP.NET应用程序中。
如果源页和目标页位于不同的ASP.NET应用程序中则只能通过查询字符串和HTTP POST传递数据。
而如果源页和目标页位于相同的ASP.NET应用程序中,则可以使用五种方式中的任意一种。
一、通过查询字符串传递数据
下面的两个URL,第一个只传递了产品编号,第二个不仅传递了产品编号,同时也传递产品名称。
http://localhost/Demo/DestinationPage.aspx?ProductID=777
http://localhost/Demo/DestinationPage.aspx?ProductID=777&ProductName=Glass
在目标页中则可以通过Page.Request.QueryString属性来获取查询字符串中传递的键值。比如下面的代码:
二、通过HTTP POST传递数据
此示例代码在源页中,为用户提供了输入用户名、生日和年龄的文本框,并且将Button控件的PostBackUrl属性设置为DestinationPage.aspx。也就是说当单击【提交到目标页】按钮后,源页窗体的数据会被传递到DestinationPage.aspx页面。
在目标页中则通过Page.Request.Form属性来获取这些传递过来的数据。
源页的页面源码如下:
目标页中获取源页窗体数据的代码如下:
代码中的if语句主要是为了避免获取以两个下划线__开头的隐藏字段的数据,比如__VIEWSTATE、__EVENTTARGET、__EVENTARGUMENT。当然也可以去掉这个if语句,然后就能同时获取这些隐藏字段的数据了。
三、通过会话状态传递数据
使用会话状态的好处是可以在与源页处于相同ASP.NET应用程序的所有网页间共享数据。缺点是会增加服务器的内存开销。
下面的代码中,用户在源页的【用户名】文本框中输入自己的姓名,然后单击【提交数据】按钮。服务器代码会通过Page.Session属性将用户名存储到会话状态中,然后使用Response.Redirect()方法将页面强制重定向到另外一个页面(DestinationPage.aspx)。在这个目标页面中再次通过Page.Session属性来获取用户在源页中保存的用户名。
源页的源代码如下:
源页中用来保存用户名到会话状态并重定向到目标页的代码如下:
目标页中获取保存在会话状态中的用户名的代码如下:
四、通过源页的公共属性传递数据
在示例代码中,我们在源页中提供了一个输入用户名的文本框,然后通过单击【提交到目标页】按钮将数据提交到目标页。
源页的源代码如下:
并且为源页定义了一个名为UserName的公共属性,此属性返回的是【用户名】文本框中输入的用户名。
这样我们就创建了一个包含公共属性的源页。接着创建目标页,并且为目标页添加@PreviousPageType指令,当然也可以使用@Reference指令。
这样,ASP.NET就会自动将目标页的Page.PreviousPage属性转换为源页的类型,从而就可以直接访问UserName属性。注意观察下面的代码,我们并没有将Page.PreviousPage进行显示的类型转换。
需要特别强调的是不要忘记判断Page.PreviousPage属性是否为null,因为它确实有为null的可能性。如果在为null的情况下获取UserName这个源页的公共属性,那是会跳出异常的。
五、通过源页中的控件值传递数据
这最后一种传递数据的方式就是直接获取源页的控件对象了,然后通过控件的属性值来获取所需的数据。比如本示例代码中,我们就是通过获取源页的TextBox控件,然后通过访问TextBox.Text属性来获取用户在源页中输入的数据。
下面的示例代码中,我们在源页放置了一个输入用户名的文本框,ID为UserNameTextBox。通过Page.PreviousPage.FindControl()方法就可以获取此控件的引用。
源页的源代码如下:
目标页中获取文本框控件,并获取其Text属性值的代码如下:
如果所要获取的控件位于某个控件的内部,比如下面的代码,UserNameTextBox控件位于名为UserPanel的Panel控件内部。那么首先找出这个Panel控件,然后通过此控件的FindControl()方法找出内部的文本框控件。
源页的源代码如下:
目标页中获取这个位于Panel控件内部的TextBox控件的代码如下:
不管控件位于那个级别的命名容器控件内部,都是通过这种方式来获取的。
一定不要忘记判断所获取的控件引用是否为null。
到这里为止,5种在网页间传递数据的方式基本已经展示完毕!^_^
光脚丫思考 2010-11-9
分享到:
相关推荐
代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。这种过程被成为代码分离。 ...
ASP.NET页面间数据传递小结.doc ASPNETXML深入编程.pdf C Primer Plus 5th.chm C#中结构与类的区别.doc C#复习.txt C#实现Web文件上传的两种方法.doc C#排序算法大全.txt C#编程规范.doc C#语言参考.doc ...
在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我们有两种方法:如果是读取一条记录的数据或者不多的...
在Visual Studio中创建ASP.NET项目 所有页面要求采用代码后置的编码方式 在项目中添加登录页面login.aspx,效果见下图 实现没有登录重定向到登录页面login.aspx 用户首次登录网站给出用户名和密码的输入...
本文实例讲述了ASP.NET中MVC传递数据的几种形式。分享给大家供大家参考。具体如下: 在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此Model渲染成HTML。这篇文章介绍三种由Controller向View传递...
表格超连接列传递参数 7.表格点击改变颜色 8.关于日期格式 9.获取错误信息并到指定页面 10.清空Cookie 11.自定义异常处理 12.Panel 横向滚动,纵向自动扩展 13.回车转换成Tab 14.DataGrid超级连接列 15....
ASP.NET常用代码 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 接收参数: string a = Request....
9.3 在SqlDataSource控件中使用ASP.NET参数 271 9.3.1 使用ASP.NET参数对象 272 9.3.2 使用ASP.NET的Control-Parameter对象 274 9.3.3 使用ASP.NET的Cookie-Parameter对象 277 9.3.4 使用ASP.NET的Form-Parameter...
Asp.net教学讲义 1 讲义内容 6 第一章:asp.net和web窗体 6 1.1 NET应用开发架构简介 6 1.1.1. NET框架结构 6 1.1.2 http协议简介 6 1.1.3 静态网页与动态网页 8 1.1.4 客户端代码与服务器端代码 8 1.1.5 ASP.NET...
asp.net编程思想,面向对象的编程思想在ASP.NET中的运用,在ASP.NET中面向对象的编程思想-NET教程,面向对象编程,面向对象的编程思想在ASP.NET中的运用b,Duwamish 7.0 结构分为四个逻辑层: • Web 层 Web 层为客户端...
9.3 在sqldatasource控件中使用asp.net参数308 9.3.1 使用asp.net参数对象308 9.3.2 使用asp.net的controlparameter对象311 9.3.3 使用asp.net的cookieparameter对象315 9.3.4 使用asp.net的formparameter对象317 ...
如何在网页中使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 ...
之前上传了一个代码 没有交代开发环境 致使好多人打不开.这次的开发环境是vs2010+mvc3. 百度地图结合asp.net mvc3 后台读取数据.信息提示框还是自定义的.
第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...
第 4 章 ASP.NET 的网页代码模型及生命周期 4.1 ASP.NET 的网页代码模型 4.1.1 创建ASP.NET 网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET 网站和ASP.NET 应用...
ASP.NET项目实训 “新闻发布系统”代码设计 知识准备 三层架构的划分及任务 表示层 业务逻辑层 数据访问层 数 据 库 为用户提供 交互操作界面 负责关键业务的 处理和数据传递 实现数 据库访问 知识准备 各层之间的...
第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...
另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。 《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 =================== 第一部分 核心概念 第1章 ASP.NET简介 1.1 ASP.NET的...
第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...