情境是这样的,
我用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;
}
Querystring对象是只读的,没错!
你可以用Server.transfer而不在地址栏显示参数
也可以用UrlRewriter或ISAPI处理下你的地址
那你可以直接通过Cookies、Session、Cache、Applaction这些来存储你的值,然后再目标页调用,这些也是跨页传值的一种方式,或者还有通过表单post传值。
这样应该可以满足你的需求。