수동 문자열 구문 분석없이 URL을 ASP.NET의 가상 경로로 어떻게 변환합니까?
-
20-08-2019 - |
문제
가상에서 절대 및 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"입니다.
제휴하지 않습니다 StackOverflow