내 ASP.Net 프로젝트를보다 잘 구성하기 위해 모든 .aspx 파일을 WebPages라는 폴더에 저장했습니다.경로의 실제 폴더를 마스크 아웃하는 Asp.net 라우팅
내 모든 URL에서 'WebPages'폴더를 가려내는 방법을 찾고 싶습니다. 그래서 예를 들어, 나는 다음과 같은 URL을 사용하지 않으 :
http://localhost:7896/WebPages/index.aspx
http://localhost:7896/WebPages/Admin/security.aspx
을하지만 그 대신, 다음과 같이 내 모든 URL이되고 싶습니다 ('웹 페이지는'나는 내 작품을 구조화에 사용하는 물리적 인 폴더입니다 만,) 외부 세계에서 볼 수 없었던 :
http://localhost:7896/index.aspx
http://localhost:7896/admin/security.aspx
나는 내 프로젝트에있는 '모든 페이지'라우팅 항목을 specifiying으로 내 자신의 해결책을 마련 할 수 있었다 (및 작동) 하지만 앞으로는 유지 보수가 안되기 때문에 다른 방법이 필요합니다.
public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "index.aspx", "~/WebPages/index.aspx");
routes.MapPageRoute("", "admin/security.aspx", "~/WebPages/Admin/security.aspx");
}
}
아마도 내가 한 것은 모든 요청을 잡아 내고 단순히 '웹 페이지'실제 디렉터리를 추가하는 클래스일까요?
많은 컨트롤과 C# 파일이 포함 된 상당히 큰 프로젝트를 진행하고 있으며 파일을 구성하기 위해 전화를 걸었습니다. 그것은 내가 이해하는 표준은 아니지만 그것은 우리에게 효과가있는 것입니다. – Hady
물론 선택의 여지가 있습니다. 그러나 나는 아직도 당신이 궤도에서 벗어난 것을 아주 강하게 느낀다. 하위 디렉터리에 컨트롤과 C# 파일을 저장합니다. Visual Studio로 만들면 자동으로이 작업을 수행 할 것인지 묻는 메시지가 나타납니다. 루트 디렉토리는 핵심 웹 페이지 용입니다. –
Jonathon에게 제안 해 주셔서 감사합니다. 이 작업을 수행하지 않으면 핵심 웹 페이지의 위치로 루트 디렉토리를 사용하는 것으로 되돌릴 수 있습니다. - 실제로 상황이 복잡해질지라도 – Hady