这篇博客是本人第一篇博客。工作两年半时间接触 .net B/S 开发一年时间,本篇博客如有错误感谢您的指出与纠正,有所补充亦感谢您的点播与赐教。(对于 Asp.net 之间的页面传值方式,本人只是将自己了解并使用过的几种方式列举出来,本篇博客会不断增加后续了解或使用到的传值方式。)
Asp.net 是基于 .Net Framework 的 Web开发平台,具备开发网站的一切应用程序。
使用 get 传值(url+参数名+参数值),接收方法为 Request.QueryString[参数名]使用 get 传递参数需注意事项:
url 与 参数 之间由 ? 来进行间隔区分,参数与参数之间由 & 来进行衔接。接收时使用 Request.QueryString[参数名] 若参数名不存在则报错。get 执行效率较高,安全性较低,有2kb的大小限制。 使用 post 传值,post传递数据集,接收方法为 Requert.Form[控件name/id属性]使用 post 传递参数需注意事项:
Form 表单中的控件必须是html控件Post 传递参数安全性高,参数大小也有限制相较于get来说大很多。Form 表单要加上 Method = post, runat = server 使用 Session 传值,接收方法为 Session[参数名],Session存放于服务器端使用 Session 传递参数需注意事项:
Session 占用大量服务器资源,故要谨慎使用。新建 Session 变量语法:Session.Add(参数名,参数值);未过期的 Session 只有 Remove 掉值才会消失。 使用 Cookie 传值,Cookie 存放于客户端,Cookie只能包含字符串的值,整数需要先转换为字符串的形式使用 Cookie 传递参数需注意事项:
实例化 HttpCookie,声明一个Cookie对象。HttpCookie 实例化对象名 = new HttpCookie(参数名,参数值)。写入服务器端:Response.Cookies.Add(实例化对象名)。获取存入的Cookies值:Request.Cookies[参数名].Value。 使用 Application 传值,Application[参数名] 可获取参数值使用 Application 传递参数注意事项:
Application 作用范围是全局,它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。常用lock和unlock方法用来锁定和解锁,为了防止并发修改。 使用 Server.Transfer 传值,Context.Handler 用来接收使用 Server.Transfer 传递参数需注意事项: copy@ASP.NET页面之间传递值的几种方式
Server.Transfer 中的 URL 必须为项目目录中存在的页面。Server.Transfer 在服务器端提出请求,减少客户端对服务器端的请求。Server.Transfer 可以传递各种数据类型的值和控件的值。PS:比较Server.Transfer和Response.Redirect的区别:
Server.Transfer在服务器端完成,所以客户端浏览器中的URL地址是不会改变的;Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以客户端浏览器中的URL地址是会改变的。Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转到任何URL地址。Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect则只能借助URL中带参数或是结合上面四种办法把各种类型的值传到新的页面。优点:
直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求。可以传递各种数据类型的值和控件的值。缺点:
客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的图片、超链接都会导致错误的指向。使用方法:
在源页面的代码中,使用Page类的Server.Transfer跳到另一个页面传递页面数据:Server.Transfer(“b.aspx”,”false”)。在目的页面中,使用Context.Handler来接收数据:FormerPage formerPage = (FormerPage)Context.Handler; 然后用formerPage的属性和方法来获取前一个页面的值,或者直接用Context.Items[“myParameter “]