Создание URL из измененных полей базы данных

2

У меня есть кнопка, когда пользователь нажимает на нее, она должна перейти к указанному URL.

Но я должен создать свой URL из значений, поступающих из базы данных, и, что наиболее важно, мне нужно изменить значения, поступающие из базы данных, прежде чем я выложу URL из него.

Предположим, что значения из базы данных

country- France
hotel - Hotel Movenpick

Теперь сначала я должен превратить столицы из значений выше в нижний регистр, затем пробелы в знак "-".

Затем мне нужно будет создать мой URL с этими измененными значениями, как показано ниже.

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

Я никогда раньше этого не делал. Пожалуйста, предоставьте мне некоторую ссылку для выполнения этой задачи. Я кодирую в С#.

Теги:

1 ответ

1
Лучший ответ

Как насчет:

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

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

Обратите внимание, что это не исправит никаких акцентированных символов или других символов. Это становится более сложным, если вы хотите это сделать. Это будет зависеть от того, насколько вы доверяете своим данным, чтобы не содержать подобные вещи.

Если вам нужно сделать это более сложным или нужно сделать это где-нибудь еще, я предлагаю вам создать метод "исправления строк", который соответствующим образом перетаскивает его, а затем вызывает его для каждого из ваших полей.

EDIT: Удаление акцентированных символов интересно..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-адреса недопустимых символов в названиях стран или отелей.
  • 0
    мне нужно даже преобразовать некоторые специальные символы, указанные в языке, например, ä в ae. Ты думаешь, я могу сделать их, как указано выше?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню