首页 新闻 搜索 专区 学院

页面URL中Querystring修改问题

0
悬赏园豆:50 [已关闭问题]

情境是这样的,

我用Response.Redirect 或(Server.Transfer)定位到另外一个页面a.aspx,并将当前页面的部分结果以Querystring的方式传递给b.aspx 在b.aspx页面初始化的时候用这些值在页面上做一些呈现。呈现完后,我想从URL中去掉这些Querystring,可是Querystring对象是只读的,可否在Page_Load中操作。这些Querystring我只需要用一次.

  if (!string.IsNullOrEmpty(Request.QueryString["N"]))
{
string N=Request.QueryString["N"];
string O=Request.QueryString["O"];
string P=Request.QueryString["P"];
string Q=Request.QueryString["Q"];
string strN = N + (((int.Parse(N) == 1) ? " row " : " rows ") + "detected; ");
string strO =(int.Parse(O)==0)?"":(O + (((int.Parse(O) == 1) ? " row " : " rows ") + "omitted for unavailable ticker; "));
string strP = (int.Parse(P)==0)?"":(P + (((int.Parse(P) == 1) ? " row " : " rows " )+ "omitted for duplicate ticker; "));
string strQ = Q + (((int.Parse(Q) == 1) ? " row " : " rows ") + "imported.");
this.divMessage.InnerText = strN + strO + strP + strQ;
}
本想用Server.Transfer和PreviousPage的可是每次页面刷新都会调用PreviousPage中的提交事件.

问题补充: 问题是, 即使不显示,只要你传到了这个页面都会在Querystring中.我已经做了这样的处理.但是视觉上是解决问题了,一刷新还是和原来一样. Context.RewritePath("watchlists.aspx"); Server.Transfer("watchlists.aspx?watchlistid=" + AttachWatchListID + "&N=" + result.N + "&O=" + result.O + "&P=" + result.P + "&Q=" + result.Q); 所以要治标治本还得从页面的绝对URL入手,而且要回避掉Server.Transfer,有PreviousPage的页面刷新会执行PreviousPage. 至于,邀月提到的后面的方法肯定是可以, 感觉太废了.
try{Phoenix}的主页 try{Phoenix} | 初学一级 | 园豆:95
提问于:2009-06-30 10:27
< >
分享
其他回答(1)
0

Querystring对象是只读的,没错!

你可以用Server.transfer而不在地址栏显示参数

也可以用UrlRewriter或ISAPI处理下你的地址

邀月 | 园豆:25375 (高人七级) | 2009-06-30 10:52
0

那你可以直接通过Cookies、Session、Cache、Applaction这些来存储你的值,然后再目标页调用,这些也是跨页传值的一种方式,或者还有通过表单post传值。

这样应该可以满足你的需求。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-06-30 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册