수동 문자열 구문 분석없이 URL을 ASP.NET의 가상 경로로 어떻게 변환합니까?

StackOverflow https://stackoverflow.com/questions/493580

문제

가상에서 절대 및 URL 로의 전환과 관련하여 비슷한 질문과 답변을 보았지만 수동 문자열 구문 분석없이 URL을 가상 경로로 어떻게 변환 할 수 있습니까?

예시:

원해요 "http : //myserver/home.aspx"변환 :"~/home.aspx "

위의 예는 쉬운 문자열 구문 분석 루틴이라는 것을 알고 있지만 URL 형식의 변경으로 확장 할 적절한 솔루션을 찾고 있습니다.

도움이 되었습니까?

해결책

URI 클래스에서 대부분을 얻을 수 있습니다.

new Uri("http://myserver.com/home.aspx").AbsolutePath

그런 다음 ~를 선불로 만듭니다

그러나 하위 디렉토리에서 호스팅하면 중단 될 수 있습니다. 실행중인 응용 프로그램의 맥락에서 구체적으로 수행 할 수있는 방법이 없다고 생각합니다.

편집 : 그렇게 할 수 있습니다 :

VirtualPathUtility.ToAppRelative(new Uri("http://myserver.com/home.aspx").AbsolutePath);

다른 팁

가상 경로.http://msdn.microsoft.com/en-us/library/ms150163.aspx)

응용 프로그램의 가상 경로가 "MyApp"이고 가상 경로 "/myapp/sub/default.asp"가 승인 메소드로 전달되는 경우 결과 응용 프로그램 관련 경로는 "~/sub/default.aspx"입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top