您的位置:首页 > 编程语言 > ASP

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);
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息