2012-04-09 4 views
0

ASP.NET MVC에서 문자열 URL과 일치하는 경로를 어떻게 찾을 수 있습니까?URL과 일치하는 경로를 찾는 방법은 무엇입니까?

이것은 디버깅을 목적으로하지 않습니다.

Request.UrlReferrer을 사용하여 링크를 생성 중이지만이를 애플리케이션의 특정 컨트롤러 동작으로 제한해야합니다. 이상적으로 우리는 그렇게 뭔가 그렇게 하시겠습니까 다음 UrlReferrer 일치하는 경로 중 하나가 우리가로 리디렉션됩니다

@Url.PreviousUrl(
    default: Url.Action("index", "home") 
    validRoutes: new[] { 
     new { controller = "list", "projects" } 
     new { controller = "tagged", "projects" }, 
     new { controller = "details", "category" } 
    } 
); 

, 그렇지 않으면 우리는 지정된 기본 URL로 리디렉션합니다.

+0

나는이 질문을 다루고 생각 http://stackoverflow.com/questions/3545432/how-to-get-routedata- by-url. 나는 똑같은 일을하려고 애썼고이 대답이 나를 위해 그것을 해결했습니다. – GraemeMiller

답변

3

다음과 같이 GetRouteData를 호출 할 수 있습니다. 거기에 더 나은 방법이 될 수 있지만, 내가 단위 테스트와 유사한 사용했습니다

http://bradwilson.typepad.com/blog/2010/07/testing-routing-and-url-generation-in-aspnet-mvc.html

+0

고마워요. 어쩌면 스텁이나 조롱 http 컨텍스트를 피할 수 있지만 충분히 깨끗한 것 같아요. https://gist.github.com/2346138에 현재 해킹 된/잘 테스트되지 않은 코드를 게시했습니다. –

+0

현재 httpcontext를 참조하십시오. 사용하는 경우 어떻게됩니까? ? –

+0

안녕하세요, Adam. 현재 HttpContext를 사용하면 'HttpContext.Request.Url'(읽기 전용)이 현재 페이지로 설정됩니다. 특정 경로와 일치하는지 확인하기 위해 ** 이전 ** 페이지 URL (확인중인 URL)에 대한 HttpContext를 작성해야합니다. 말이 돼? –

관련 문제