2010-05-24 64 views
2

當我寫響應與 '+' 重定向

Response.Redirect("Default2.aspx?Name=" + TextBox1.Text); 

然後

string input = Request.QueryString["Name"]; 

如果我寫雅虎+音樂文本

的投入將是雅虎的音樂,爲什麼?我該如何保持'+'?

回答

3

URL中的加號表示空格。你應該URL編碼,你把網址中的值:

Response.Redirect("Default2.aspx?Name=" + Server.UrlEncode(TextBox1.Text)); 
7

+是查詢字符串中的空間編碼。要編碼+,您需要使用%2b

嘗試UrlEncode這應該爲您處理。

0

我有另一種方式 - 雖然有點「棘手」 - 通過傳遞來達到自己的目標「+」(或任何其他特殊字符)在查詢字符串

當你通過查詢字符串,你這樣寫:

的Response.Redirect( 「?Default.aspx的名稱=」 + TextBox1.Text.Replace( 「+」, 「_」)) ;

那麼它會通過的Default.aspx?名稱= Yahoo_Music

,並要求它,只是再次更換

字符串輸入=的Request.QueryString [ 「名稱」]。替換( 「_」,」 +「);

輸入將爲:Yahoo + Music。

雖然這種方式有點棘手,但有時這種方式非常有助於在查詢字符串中傳遞特殊字符。

謝謝