2015-01-09 2 views
1

ASP.NET MVC 응용 프로그램에서 Global.asax의 URL에 액세스하려면 Request.Url이 있습니다.Global.asax에서 Angular view의 전체 URL을 얻는 방법

URL이 http://domain/#/home 인 각도 응용 프로그램의 경우. 우리가 Application_BeginRequest 또는 Application_EndRequest에서 얻은 Request.Urlhttp://domain/입니다. 각도 경로는 포함되지 않습니다.

이러한 경로가 클라이언트 쪽에서 추가되기 때문에 적절합니다. 그러나 MVC 서버 측에서 실제 URL의 가치를 얻을 수 있습니까?


업데이트 :

그냥 올바른으로 마테오의 답변을 들었다. 내가 좀 더 명확히하자.

나는 이것을 한 가지 목적으로 시도해왔다 : 나의 URL을 다시 써라.

예전에는 Request.ApplicationPath을 확인하고 VirtualPathUtility과 같은 내장 함수 또는 문자열 함수를 사용하여 URL을 조작했습니다.

해시 부분은 쿼리 문자열 매개 변수가 추가되어 있기 때문에 필요합니다. 예를 들어, 나는 URL을 다음과 같이 있습니다

http://[domain]/#/pay/cancel?paymentId=[some guid] 

상식이 그 쿼리 매개 변수에 액세스 할 수 Global.asax에 저를 가져왔다. 나는 아무도 찾지 않는다. 해시 태그 뒤의 모든 것은 편리하게 무시됩니다.

올바른 방법은 클라이언트 측 코드에서 URL의 해당 부분을 처리하는 것입니다. ui-router을 사용하고 있습니다. 따라서 URL 다시 쓰기/리디렉션의 경우 stateProvider.when(oldUrl, newUrl);을 사용하십시오. 검색어 매개 변수에 액세스하려면 $state.params을 사용하십시오.

교훈 : 명확하게 생각하고 다른 사고 방식으로 다른 문제에 접근하십시오.

+0

그게 전부입니다. ui-router 구성 요소를 사용하면 말한대로 정확히 수행해야합니다. 이 문제를 해결할 올바른 방법을 스스로 찾은 것을 기쁘게 생각합니다. –

답변

1

URL의 "해시"부분이 실제로 URL의 일부가 아니기 때문에 방법은 없습니다. 페이지에서 앵커를 사용하여 색인을 생성 한 적이 있습니까? 개념은 동일합니다.

어쨌든 나는 해시 파트가 유용한 서버 쪽 일 수있는 방법을 상상할 수 없다. 내 생각 엔 당신이 라고 생각하면은 잘못된 방법으로 문제에 접근하고 있기 때문에 유용합니다.

귀하가 달성하고자하는 것과 같은 더 자세한 내용으로 귀하의 질문을 보완하는 경우 적절한 솔루션을 제공 할 가능성이 매우 높습니다.

+0

감사합니다. 나는 네가 말했듯이 내가 문제를 잘못된 방향으로 접근하고 있다는 것에 동의한다. – Blaise

관련 문제