从修改的数据库字段中创建URL

时间:2009-08-13 10:16:56

标签: c# asp.net sql

我有一个按钮,当用户点击它时,它必须转到指定的URL。

但是我必须使用来自数据库的值创建我的URL,最重要的是,我需要修改来自数据库的值,然后才能创建一个URL。

假设数据库中的值为

country- France
hotel - Hotel Movenpick

现在首先我必须将大写字母从上面的值转换为小写,然后将空格转换为“ - ”符号。

然后我将使用以下修改后的值创建我的网址。

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

我以前从未这样做过。请为我提供一些参考来完成这项任务。我在c#编码。

1 个答案:

答案 0 :(得分: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); 
}