2009-08-13 3 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

국가 또는 호텔 이름의 잘못된 문자 URL에서 보호하려면 거기에 Uri.EscapeDataString을 호출해야한다고 주장합니다. –

+0

일부 특수 언어 지정 문자도 예를 들어 ae로 변환해야합니다. 내가 위와 같이 할 수 있다고 생각하니? – subha

+0

편집하여 ... –

관련 문제