[C#] 검색어없이 URL을 가져옵니다.

다음과 같은 URL이 있습니다.

http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye

나는 http://www.example.com/mypage.aspx그것을 얻고 싶다 .

어떻게 구할 수 있는지 말씀해 주시겠습니까?



답변

당신이 사용할 수있는 System.Uri

Uri url = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme,
    Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);

아니면 사용할 수 있습니다 substring

string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));

편집 : 의견에 brillyfresh의 제안을 반영하도록 첫 번째 솔루션 수정.


답변

더 간단한 해결책은 다음과 같습니다.

var uri = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = uri.GetLeftPart(UriPartial.Path);

여기에서 빌린 : 쿼리 문자열 자르기 및 깨끗한 URL 반환 C # ASP.net


답변

이것은 내 솔루션입니다.

Request.Url.AbsoluteUri.Replace(Request.Url.Query, String.Empty);


답변

Request.RawUrl.Split(new[] {'?'})[0];


답변

좋은 대답은 여기 대답의 소스

Request.Url.GetLeftPart(UriPartial.Path)


답변

내 길 :

new UriBuilder(url) { Query = string.Empty }.ToString()

또는

new UriBuilder(url) { Query = string.Empty }.Uri


답변

Request.Url.AbsolutePath페이지 이름과 Request.Url.Authority호스트 이름 및 포트 를 얻는 데 사용할 수 있습니다 . 나는 당신이 원하는 것을 정확하게 줄 수있는 빌트인 속성이 있다고 생각하지 않지만 직접 결합 할 수 있습니다.