ASP.NET 페이지가없는 ResolveUrl
다음과 같은 페이지 또는 컨트롤 인스턴스 ( MSDN Docs )에서와 같이 상대 URL을 확인하는 방법을 찾고 있습니다 .
Page.ResolveUrl("~/common/Error.aspx");
...하지만 HttpHandler에있을 때처럼 HttpContext 만 사용할 수있는 경우.
여기에 표시된 것과 같은 사용자 지정 함수를 사용해야 합니까?
또는 페이지에서 사용하는 기본 기능을 얻을 수있는 방법이 있습니까?
핸들러에서 페이지를 가져 와서를 사용 ResolveUrl
하거나 Control 객체를 만드십시오.
(HttpContext.Current.Handler as Page).ResolveUrl("~/virtualpath");
또는 사용 VirtualPathUtility.ToAppRelative(string)
하거나VirtualPathUtility.ToAbsolute(string)
예를 들면 :
System.Web.VirtualPathUtility.ToAbsolute("~/Styles/Contoso.xslt");
보고
/WebSite/Styles/Contoso.xslt
SO ( ASP.Net : Using System.Web.UI.Control.ResolveUrl () in a shared / static function ) 에 대한이 질문 은 일종의 도움이됩니다 ... 기본적으로 System.Web 아래에있는 VirtualPathUtility 클래스를 사용할 수 있습니다. 네임 스페이스. QueryString 매개 변수를 조심하라는 질문에 대한 추가 답변이 있지만 이에 대한 해결책도 제공됩니다.
동시에 Rick Strahl의 코드는 매우 깔끔합니다!
다음과 같이 사용하십시오. Controls는 응용 프로그램의 폴더 이름이고 myController는 컨트롤러 이름입니다. 컨트롤러를 생성하고 인스턴스화하고로드하려면 다음과 같이 할 수 있습니다.
Controls_myController ctrl = Page.LoadControl(Page.ResolveUrl("controls/myController.ascx"));
도움이 되었기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/4893380/resolveurl-without-an-asp-net-page
'IT박스' 카테고리의 다른 글
일반 확장 메서드를 만드는 방법은 무엇입니까? (0) | 2020.11.24 |
---|---|
명령 줄에서 내 YAML 파일의 유효성을 검사하려면 어떻게해야합니까? (0) | 2020.11.24 |
한 줄의 텍스트를 한 줄로 유지-전체 줄을 줄 바꿈하거나 전혀 줄 바꿈 없음 (0) | 2020.11.24 |
sed에서 큰 따옴표와 작은 따옴표를 어떻게 이스케이프합니까? (0) | 2020.11.24 |
종료와 종료의 차이점 Now of Executor Service (0) | 2020.11.24 |