2010-08-19 6 views
1

우리는 WebForms을 사용하여 프로젝트를 시작했으며, 이동 경로, 탐색 등을 수용하기 위해 다소 복잡한 포털 시스템을 개발했습니다. URL에 별도의 탐색 컨텍스트 ID 매개 변수를 항상 유지하므로 여러 탭을 사용하거나 브라우저에서 탐색 버튼을 사용하더라도 사용자의 탐색 경로 기록을 강력하게 추적 할 수 있습니다. 이 기능을 WebForms에서 제대로 작동 시키려면 모든 비 포스트 백 링크를 포털의 유틸리티 메소드로 생성해야합니다. 포털의 유틸리티 메소드를 사용하면 여러 가지 이점을 얻을 수 있으므로 실제로 부담이되지 않습니다. 그리고 주어진 페이지에서 일어나는 어떤 행동도 포스트 백을 사용할 것이기 때문에 이러한 행동이 수행 될 때 URL은 변하지 않습니다.ASP.NET MVC에서 HtmlHelper 링크 생성을 가로 채거나 재정의하려면 어떻게해야합니까?

이제 우리 사이트의 일부에서 MVC를 사용하기 시작했으며, 전환은 상대적으로 원활했습니다. 하지만 포털을 제대로 사용하지 않고도 제대로 사용할 수 있는지 확인하고 싶습니다. 지금까지 우리는 여러 페이지 사이에 링크를 생성하기 위해 사용자 정의 HtmlHelper 확장 메소드를 사용하고 있습니다 ("페이지"는 MVC에 실제로 존재하지 않지만 특정 작업은 전체 페이지를 렌더링하는 효과가 있음). 이렇게하면 페이지 동작을 위해 URL에 탐색 컨텍스트 ID를 유지할 수 있습니다. 그러나이 URL 매개 변수가 손실되는 것을 방지하기 위해 페이지 내의 모든 작업에 대해서만 AJAX 요청을 사용합니다. 이렇게하면 전체보기로 대부분의 작업 요청에 응답하거나 Post-Redirect-Get 패턴을 따르지 못하게됩니다.

저는 AJAX를 좋아합니다. 기술적으로 javascript를 사용하지 않는 브라우저는 지원하지 않을 예정이지만, 그럼에도 불구하고 옵션을 공개하고 싶습니다. 그래서 내장 된 HtmlHelper 메서드를 통해 링크 나 폼이 렌더링 될 때마다 URL 생성에 후크를 추가하고 URL 쿼리 매개 변수에 컨텍스트 ID를 추가 할 수 있도록 할 수 있기를 바랍니다. 이 작업을 수행 할 수있는 (가능한 한 쉬운) 방법이 있습니까? 아니면 더 나은 내 문제에 대한 또 다른 해결책을 보시겠습니까?

답변

2

기존 HTMLHelper의 코드 경로로 들어갈 방법이 없습니다. 너 자신을 굴려 라. 희망이 있습니다. 기존의 html 도우미로 전달되는 피상적 인 정면으로 빠져 나갈 수 있습니다.

관련 문제