2015-04-17 36 views
-1

我想替換字符串的哈希字符字符串,但下面不工作的替換字符在不工作

string address = "Blk 344, Jurong West, Street 11, #02-111"; 
address.Replace("#","%23"); 

任何想法傢伙已經快把我逼瘋了

查詢字符串全

http://localhost:54965/SKATEZ/thankyou.aspx?firstname=Fiora&lastname=Ray&address=Blk%20344,%20Jurong%20West,%20Street%2011,%20#02-111&total=22&nirc=S6799954H&country=Singapore&orderid=85&postalcode=746112

我構造URL如下

string url = "thankyou.aspx?firstname=" + firstname + "&" + "lastname=" + lastname + "&" + "address=" + HttpUtility.EscapeDataString(address) + "&" + "total=" + total + "&" + "nirc=" + tbID.Text + "&" + "country=" + ddlCountry.SelectedValue + "&" + "orderid=" + orderid + "&" + "postalcode=" + tbPostalCode.Text; 
Response.Redirect(url); 
+0

你必須使用'Replace'的返回值做一些事情,比如將其分配回原始字符串? –

+0

[C#字符串替換可能重複不起作用](http://stackoverflow.com/questions/13277667/c-sharp-string-replace-does-not-work) –

+0

它看起來像你試圖把你的字符串成爲可用作URL參數的東西 - 在這種情況下,而是使用[System.Uri.EscapeUriString()或System.Uri.EscapeDataString()或HttpUtility.UrlEncode()](http://stackoverflow.com/q/4396598/205233 ) – Filburt

回答

8

嘗試在C#

address = address.Replace("#","%23"); 

字符串是immutable

字符串是一個字符串對象的創建對象之後不能被改變不可改變 --the內容,雖然語法使得它看起來好像你可以做到這一點。例如,編寫這段代碼時,編譯器實際上會創建一個新的字符串對象來保存新的字符序列,並將該新對象分配給b。字符串「h」然後有資格進行垃圾收集。

+0

我在做這個字符串address = tbAddr.Text; address = address.Replace(「#」,「%23」);但它仍然rembering哈希時,我在查詢字符串中的瀏覽器%23%它工作正常任何想法 – rogue39nin

+0

它仍然無法正常工作我包括我的完整url在代碼中他們 – rogue39nin

+0

如何構建URL? – AlexD

0

使用System.Uri.EscapeDataString(串)應該解決您的問題:

var urlbuilder = new StringBuilder(); 

urlbuilder.AppendFormat("thankyou.aspx?firstname={0}", firstname); 
urlbuilder.AppendFormat("&lastname={0}", lastname); 
urlbuilder.AppendFormat("&address={0}", System.Uri.EscapeDataString(address)); 
urlbuilder.AppendFormat("&total={0}", total); 
urlbuilder.AppendFormat("&nirc={0}", tbID.Text); 
urlbuilder.AppendFormat("&country={0}", ddlCountry.SelectedValue); 
urlbuilder.AppendFormat("&orderid={0}", orderid); 
urlbuilder.AppendFormat("&postalcode={0}", tbPostalCode.Text); 

Response.Redirect(urlbuilder.ToString()); 

(使用System.Text.StringBuilder譜寫自己的網址,使代碼更可讀)

+0

@Fiburt我試圖在mornng謝謝 – rogue39nin