2013-03-31 2 views
3

여러 개의 스파가있는 mvc4 앱을 개발 중입니다.뜨거운 타월과 듀란 달로 다른 컨트롤러에 연결

나는 내 온천에 뜨거운 수건 템플릿을 사용하고 있습니다.

스파에 대한 내보기 내에 앵커 링크가 있어야 다른 사용자의 색인 작업으로 이동하므로 내 스파를 종료하고 다른 스파를 열 수 있습니다. 모든 작업이 스파를 시작하지는 않지만 일부는 일반적인 mvc 스타일 페이지입니다. 내 스파 HTML 페이지에 다음과 같은 같은

내가 넣어 가지고 코드 :

<a href="/controller/action">Navigate to another controller</a> 

이 브라우저에서 URL을 변경하지만 항상 스파의 기본 HTML 페이지를 다시로드합니다. 브라우저의 새로 고침 버튼을 누르면 올바른 페이지로 이동합니다.

<a href="/controller/action" target="_parent">Navigate to another controller</a> 

그것은 새로운 컨트롤러 페이지로 이동합니다 :

나는 _parent의 앵커 태그 또는 같은 _top 대상을 넣을 수 있었다.

나는 이것이 두 번째 컨트롤러로 이동하는 것을 방지하는 durandal 프레임 워크에 있다고 생각하지만, 이제 막이 작업을 시작한 이래로 내가 변경해야하는 것으로 난처한 상황에 처하게되었습니다. 앵커 태그에서 타겟을 사용하는 것보다 더 좋은 방법이 있어야한다고 생각합니다. 아니면 최선의 선택입니다.

+1

isent MVC 사이트를 설정할이 새미 옵션을 찾았나요? 당신은 정사각형 바퀴로 차를 만들려고하지 않고 있습니까? – davethecoder

+0

durandal 스타터 키트를 꺼내어 타겟을 _parent 및 _top로 사용하여 welcome.html 페이지에 앵커 링크를 추가했는데 탐색 기능이 제대로 작동했습니다. 전체 코드를 제공해 주시겠습니까? –

+0

Evan, _parent 또는 _top을 추가하면 탐색 기능이 작동합니다. 어쩌면 내 질문에 명확하지 않은, 거기에 더 나은 방법이 상황을 처리하는 다음 _parent 또는 _top 대상으로 사용하고 있습니다. – mike

답변

5

나는 당신을 올바르게 이해하기를 바랍니다. 나는이 행동이 내 Sammy.js (durandal 라우터가 현재 기반을두고 있음)로 인한 것이라고 믿습니다. Sammy의 기본 동작은 모든 링크를 납치하여 SPA 자체와 관련하여 처리하는 것입니다.

나는 작업하고있는 웹 사이트에 대해이 동작이 좋지 않았으며 SPA 내에서 가능한 다른 MVC 웹 페이지에 대한 링크가 필요했습니다. 내가 정말로 원했던 것은 단지 일하는 링크와 해시 링크가 SPA 내의 다른 뷰에 대한 링크로 해석되도록하는 것입니다. 따라서 '/ 컨트롤러/액션'은 다른 웹 페이지로 이동하고 '#moduleId'는 다른 듀레이션 V/VM으로 이동합니다.

나는 여러 SPA의 더 이상 스파, 오히려 MVC 응용 프로그램과 함께, 나를 위해 작동 내 main.js에

// This stops Sammy from hijacking regular links 
    Sammy.Application.prototype.disable_push_state = true; 
+0

정확히 내가 필요한 것. 고맙습니다. – mike