2013-03-11 67 views
0

嗨我想要格式化我的Url,以便它看起來更加用戶友好。到目前爲止,我設法用「 - 」替換空格,但似乎有特殊字符如#和:即顯示爲編碼data.This是我的意思:用它們的符號替換URL編碼的數據

http://localhost:51208/Home/Details/C%23-in-Depth%2c-Second-Edition/BookId-3 

的「#」符號顯示爲23%和「」顯示爲%2c.I希望能夠取代這個用他們的原始符號編碼。

這種方式是否存在?

回答

5

哦不,你完全不想用#來代替它。這個符號在url中有特殊的含義。它代表fragment identifier,它的值永遠不會發送到服務器。這基本上意味着如果你的url中有一個#符號,那麼它後面的所有內容都會被截斷並永遠不會發送到服務器。您可以查看following post以查看StackOverflow用來格式化問題標題中的slu what。你可以通過這個替換函數來運行你的字符串,以確保沒有危險的字符。

我還建議您閱讀Scott Hanselman的following blog post,其中介紹瞭如果您嘗試在URL的路徑部分中發送特殊字符,則可能會遇到與IIS可能遇到的各種情況。我在這裏引用他的結論:

畢竟這項工作,在請求路徑得到瘋狂的事情,這是 值得一提的是,簡單地保持值作爲查詢 字符串的一部分(還記得回來的路上在一開始)更簡單,更清潔,更靈活,更安全。

+0

+1 TIL片段標識符:) – 2013-03-11 06:56:05

0

只需更換「#」替換爲「尖銳」和「:」和「 - 」你不能只是把那些特殊字符的URL