ASP.Net: 시스템 사용.웹.UI.컨트롤.공유/정적 함수에서 Url() 확인
As에서 공유/정적 함수에서 ResolveUrl()을 사용하는 가장 좋은 방법은 무엇입니까?넷? VB에 대한 현재 솔루션.순:
Dim x As New System.Web.UI.Control
x.ResolveUrl("~/someUrl")
또는 C#:
System.Web.UI.Control x = new System.Web.UI.Control();
x.ResolveUrl("~/someUrl");
하지만 저는 그것이 그것을 부르는 가장 좋은 방법이 아니라는 것을 깨달았습니다.
시스템을 사용합니다.Web.VirtualPathUtility.절대자에게.
비록 시스템이지만 주목할 가치가 있습니다.Web.VirtualPathUtility.ToAbsolute는 여기서 매우 유용하며 Control을 완벽하게 대체할 수 없습니다.Url을 확인합니다.
적어도 한 가지 중요한 차이점이 있습니다.통제.ResolveUrl은 쿼리 문자열을 매우 잘 처리하지만 VirtualPathUtility에서 HttpException을 발생시킵니다.이는 특히 컨트롤 방식에 익숙할 경우 처음 발생할 때 매우 혼란스러울 수 있습니다.ResolveUrl이 작동합니다.
사용할 쿼리 문자열의 정확한 구조를 알고 있는 경우 이 방법은 쉽게 해결할 수 있습니다.
public static string GetUrl(int id)
{
string path = VirtualPathUtility.ToAbsolute("~/SomePage.aspx");
return string.Format("{0}?id={1}", path, id);
}
...하지만 쿼리 문자열이 알 수 없는 소스에서 전달되는 경우에는 어떻게든 구문 분석해야 합니다. (너무 깊이 들어가기 전에 시스템을 참고하십시오.)URI가 당신을 위해 그것을 해줄 수 있을지도 모릅니다).
저는 HttpContext를 사용하는 편입니다.Current는 페이지를 가져온 다음 페이지/웹 제어 방법을 실행합니다.
언급URL : https://stackoverflow.com/questions/26796/asp-net-using-system-web-ui-control-resolveurl-in-a-shared-static-function
'source' 카테고리의 다른 글
GROUP BY 절에 나타나거나 집계 함수에서 사용해야 합니다. (0) | 2023.05.22 |
---|---|
PowerShell을 사용하여 응용 프로그램을 제거하려면 어떻게 해야 합니까? (0) | 2023.05.22 |
몽구스:스키마 대 모델? (0) | 2023.05.22 |
각 루프에서 jQuery를 벗어나는 방법은 무엇입니까? (0) | 2023.05.22 |
오류 가져오기:herku에 배포할 때 postgresql-client-패키지를 하나 이상 설치해야 합니다. (0) | 2023.05.22 |