[英]why is my parameter value not being passed in QueryString
我有一個參數:
string custName = "";
custName = AddressDT.Rows[0]["first_name"].ToString() + " " + AddressDT.Rows[0]["last_name"].ToString();
我正在執行我的Response.Redirect
Response.Redirect("~/Account/EmailError.aspx?parm1=custName");
我正在檢索參數值:
custName = Request.QueryString["parm1"];
當我運行調試時:... custName =“ custName”
我究竟做錯了什么? 我之前沒有做過這個。
您的Response.Redirect
正在傳遞字符串“ custName”,而不是變量的值。
這將為您解決:
Response.Redirect("~/Account/EmailError.aspx?param1=" + custName);
那是因為您使用字符串常量作為參數的值。
Response.Redirect("~/Account/EmailError.aspx?parm1=custName");
這將始終導致使用字符串custName
設置URL。
嘗試將變量名用作:
Response.Redirect("~/Account/EmailError.aspx?parm1=" + custName);
現在,該變量將附加到請求中。
現在,當您運行代碼時,它將在變量中產生值,並使代碼正常運行。
始終記得先完成字符串,然后添加變量值。 double qoutes內部的所有內容都被視為字符串,而不是變量名或關鍵字。
如果您已經知道QueryString的值是字符串,則需要使用UrlEncode 。
另外,為了更好的設計實踐,您希望盡可能使用String.Format
而不是+。
string custName = String.Format("{0} {1}",
AddressDT.Rows[0]["first_name"].ToString(),
AddressDT.Rows[0]["last_name"].ToString());
string url = String.Format("~/Account/EmailError.aspx?parm1={0}",
Server.UrlEncode(custName));
Response.Redirect(url);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.