Asp.net状态管理(八)
2007-10-23 13:59
127 查看
8 其他
8.1 QueryString
除了Cookie、Session、Application、Cache、HiddenField、ViewState、ControlState、Profile等重要状态机制外,ASP.NET还提供了一些其他的方法让我们暂时保存数据。在很多时候我们希望跨页面传输数据,最常用的一个办法就是使用GET方式提交数据。也就是在URL中附加一段QUERYSTRING(类似 news.aspx?ID=1这样的效果),因此,有的时候我们不需要通过程序就能传输QUERYSTRING。不过,我们需要注意以下几点。
· IE浏览器对URL长度限制在2083个字符内。由于QUERYSTRING是在URL中传输内容,所以也就受到了这个限制。
· 在URL中传输的数据都是明文的,而且客户端随时能修改,因此千万别使用QUERYSTRING传敏感数据。
· 在URL中传汉字或者一些特殊字符需要进行URL编码后传递,接收的时候再反编码,否则传递的数据可能会出现乱码或者被截断。
string s = "编程快乐!@#$%^&*()";
Response.Redirect(Request.Url.AbsolutePath+"?data="+HttpUtility.UrlEncode(s));
接收的时候:
if (Request.QueryString["data"] != null)
Response.Write(HttpUtility.UrlDecode(Request.QueryString["data"]));
8.2 跨页提交
QUERYSTRING毕竟只能传输字符串,如果我们希望在一个页面中直接访问另外一个页面,可以使用ASP.NET 2.0的跨页提交功能。比如我们建立一个CrossPageSubmitTest.aspx页面,在任意页面建立一个按钮提交到CrossPageSubmitTest.aspx。<asp:Button ID="btn_CrossPageSubmit" runat="server" OnClick="btn_CrossPageSubmit_
Click" PostBackUrl="CrossPageSubmitTest.aspx" Text="跨页面提交" />
然后在CrossPageSubmitTest.aspx的Page_Load中加入以下代码就能输出前一个页面上btn_CrossPageSubmit按钮的Text属性。
Response.Write((PreviousPage.FindControl("btn_CrossPageSubmit") as Button).Text);
相关文章推荐
- MSDN: asp.net状态管理建议
- ASP.NET中的状态管理(转载)
- Asp.Net北大青鸟总结(三)-应用程序状态管理
- 转 ASP.NET状态管理
- ASP.NET中的状态管理
- ASP.NET状态管理之一(概括篇)
- ASP.NET状态管理
- ASP.NET状态管理之四:Cache
- ASP.NET页面状态管理——ViewState的使用
- ASP.NET状态管理
- ASP.NET状态管理
- ASP.NET状态管理之二(查询字苻串QueryString)
- ASP.NET中的状态管理
- Asp.net 2.0状态管理小结
- [MSDN]ASP.NET 状态管理概述
- ASP.NET 状态管理(查询字符串 和 跨页回发)
- ASP.NET页面状态管理——ViewState的使用(一)
- ASP.NET页面状态管理——ViewState的使用
- ASP.NET 2.0 状态管理 学习笔记( 二)
- 一起谈.NET技术,ASP.NET的状态管理