簡體   English   中英

為什么我的參數值未在QueryString中傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM