문제

실제 URL을 잡고 경로 자체에서 사용해야하는 프로젝트를 진행하고 있습니다. 내가보고있는 모든 것, 읽기 및 테스트를 통해 경로는 사이트 URL 이후 항목을 잡을 수 있습니다. 이것은 내가 시도한 것이며, 단순히 사이트가 비어 있다고 말할 때마다 (아마도 기본값 때문일 것입니다). 루트 URL을 활용할 수 있도록 경로를 허용하는 뼈를 던질 수 있습니까? 목표는 URL을 처리하고 시야 내부에 한 번 다른 장으로 나를 데려 갈 웹 사이트 중 하나입니다.

다음은 내가 시도한 코드이지만 LocalHost 이외의 행운은 없습니다.

            routes.MapRoute(
            "PageRouter",
            "{site}/{*url}",
            new { controller = "PageRouter", action = "RoutePage", site = "", url = "" }
        );

당신의 도움은 대단히 감사합니다. 미리 감사드립니다

도움이 되었습니까?

해결책

컨트롤러의 동작 내에서 httpcontext.request.rawurl을 사용하는 것은 어떻습니까? 나는 여기서 뭔가를 놓치고있을 수 있습니다. 읽고 싶은 URL은 어디에서 왔습니까? 현재 페이지입니까 아니면 다른 페이지입니까?

다른 팁

Nathan의 답변은 답의 일부입니다. httpcontext.request.rawurl은이 정보에 액세스 할 수 있지만 대신 Global.asax.cs 파일에 액세스 할 수 있습니다. 이것은 application_beginrequest 이벤트에서 수행됩니다. 그러나 트릭 (그리고 누군가가 더 우아한 방법을 알고 있다면 의견을 제시하십시오). 그러나 우리는 MAPROUTE 방법에서 픽업 할 수있는 나머지 경로 경로에 사용되는 URL을 주입합니다. 그래서 "http://subdomain.domain.net/url"사이트는"로 나타납니다 "http://subdomain.domain.net/subdomain.domain.net/url 따라서 Maproute 명령의 {site} 부분에서 선택할 수 있습니다. 이것은 사용자에게 표시되지 않지만 수신 된 URL을 기반으로 앱 내에서 결정을 내릴 수 있습니다. 이 소리가 제정신입니까? 루트 URL을 흡수하기 위해 미친 방법처럼 보이면 의견을 환영합니다.

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