2013-04-15 155 views
1

我有以下頁面查詢字符串:asp.net查詢字符串

register.aspx?id="jSmith" 

我有下面的代碼來獲取ID

string qString = string.IsNullOrEmpty(Request.QueryString["id"]) ? string.Empty : HttpUtility.UrlDecode(Request.QueryString["id"]); 

的價值。當我查看的QString的價值我得到的東西像

"\"jSmith\"" 

所以當我做到以下幾點:

 if (qString == "jSmith") 
    { 
     ........ 

    } 

它不會執行if條件。我需要做什麼,它沒有報價。

回答

1

這是因爲正確的方法在這種情況下給出的路徑是register.aspx?id=jSmith,沒有引號。如果您的身份證中需要空格或其他特殊字符,則這些字符應由URL編碼(並且將由您的代碼解碼),但不包括在引號中的

例如,如果您的ID是字符串john smith,則URL將變爲register.aspx?id=john+smith,因爲+是空格的URL編碼。

1

你並不需要把周圍的值引號中查詢字符串,定義他們都串......

你的查詢字符串應該是這樣的:

register.aspx?id=jSmith 
1

你不需要查詢字符串中的引號。

它應該閱讀

register.aspx?id=jSmith 
2

的代碼是正確的。 問題在於,您傳遞到帶有雙引號的頁面"jSmith"作爲字符串的一部分。 嘗試調用頁面這樣

register.aspx?id=jSmith 
1

你應該尋找

if (qString == "\"jSmith\"") 

\脫逃額外"

,或者你可以進行更換,以除去多餘的"

1

使用

Response.Redirect("Qstring.aspx?name= smith"); 

,並在頁面Qstring.aspx加載事件

string s=Request.QueryString["name"].ToString(); 

插上U s中的變量

「史密斯」