2009-08-13 80 views
2

我有一個按鈕,當用戶單擊它時,它必須轉到指定的URL。從已修改的數據庫字段中創建URL

但我必須創建我的URL來自數據庫的值,最重要的是,我需要修改來自數據庫的值,然後再從中創建一個URL。

假設從數據庫中的值是

country- France 
hotel - Hotel Movenpick 

現在首先我必須把從上面值首都爲小寫,然後空格「 - 」符號。

然後我將不得不創建我的URL與這些修改後的值如下。

http://www.travel.com/france/hotel-movenpick 

我從來沒有這樣做過。請爲我提供一些參考資料來完成這項任務。我在C#編碼。

回答

1

如何:

string fixedCountry = country.ToLower(CultureInfo.InvariantCulture) 
          .Replace(" ", "-"); 
string fixedHotel = hotel.ToLower(CultureInfo.InvariantCulture) 
        .Replace(" ", "-"); 

string url = "http://www.travel.com/" + fixedCountry + "/" + fixedHotel; 

注意這不會修復了任何重音字符或其他符號。如果你想這樣做會變得更加複雜。這將取決於你信任你的數據多少不包含這樣的事情。

如果您需要更復雜一點,或者需要在其他任何地方做到這一點,我建議您創建一個「字符串固定」方法,適當地調整它,然後爲每個字段調用它。

編輯:刪除重音字符很有趣。 .NET讓這很容易,但我不知道它會爲你的「ae」情況做什麼 - 你可能需要特殊情況。試試這個,雖然,作爲一個起點:

static string RemoveAccents (string input) 
{ 
    string normalized = input.Normalize(NormalizationForm.FormKD); 
    Encoding removal = Encoding.GetEncoding 
     (Encoding.ASCII.CodePage, 
     new EncoderReplacementFallback(""), 
     new DecoderReplacementFallback("")); 
    byte[] bytes = removal.GetBytes(normalized); 
    return Encoding.ASCII.GetString(bytes); 
} 
+0

我要說你需要幾個電話到Uri.EscapeDataString在那裏,從全國或酒店名稱無效字符的URL來保護。 – 2009-08-13 10:27:55

+0

我甚至需要將某些特定語言指定的字符以及例如ä轉換爲ae。你是否認爲我可以像上面那樣做 – subha 2009-08-13 10:33:30

+0

編輯以涵蓋那個... – 2009-08-13 10:58:32