2011-12-08 2 views
2

나는 이것에 대한 해답을 찾았으며 둘 중 두 가지 가능성을 생각해 냈습니다.ASP.NET MVC가있는 웹 사이트의 웹 사이트

모듈을 추가 할 기존 ASP.NET MVC 응용 프로그램이 있습니다. 이 모듈은 많은 공통점을 다루기 때문에 우리가 가지고있는 다른 제품과 공유 할 수도 있습니다. 두 개의 개별 웹 사이트에 대해이 모듈 (UI 부분조차도)을 다시 작성하지 않아도되기 때문에 초기 생각은 독립 실행 형 사이트로 개발하는 것뿐이었습니다. (그리고 우리 제품 스위트는 전체에서 싱글 사인온을 지원하기 때문에 새로운 사이트에 다시 로그인해야하는 문제는 없습니다). 그러나 기존 사이트의 일부인 것처럼 보일 것입니다. 마스터 페이지에는 탭이 있습니다 (마스터 페이지에는 현재 사이트의 섹션을 표시하는 탭이 있습니다). 기존 제품의 통합 구성 요소.

그래서이 사이트를 기존 사이트의 탭에 배치하는 방법을 생각하고있었습니다.

가장 쉬운 일은 iframe 일 것이라고 생각했습니다. 우리는 이미 다른 탭에 iframe을 가지고 있습니다. (같은 프로젝트의 일부분 - 일부 레거시 웹은 MVC와 호환되지 않는 제 3 자 컨트롤에 의존합니다.) 그리고 그것은 작동합니다 ... 요점까지 추악한 솔루션과 다음 릴리스에 대한 계획은 제거합니다.) 나는 그 일을 다시하지 않을 것입니다.

다른 생각은 탭의 콘텐츠 영역 안에 div가있어서 AJAX 호출을 사용하여 콘텐츠를 대체 할 수 있다는 점입니다. 사용자가이 새로운 모듈의 작동을 진행함에 따라 하나의 완벽한 사이트처럼 보입니다. 다시 말해서, 나는 그것이 잘 작동 할 것이라고 생각하지 않기 때문에 저를 두려움으로 채 웁니다 ... 그리고 우리는 Google Analytics와 같은 영역에서 완전히 사라질 것입니다 (우리는 완전히 잃을 것입니다. 비트 수)를 지정하고 사용자가 페이지를 북마크 할 수 있도록 허용합니다 (탭을 열면 AJAX 호출로 구성되는 모든 항목이 첫 번째로 표시됩니다.)

누구든지이 방법을 추구하는 방법에 대한 제안이 있습니까? 첫 번째 ASP.NET MVC 응용 프로그램에서 두 번째 사용할 마스터 페이지를 제공 할 수있는 방법이 있습니까? 또는 ASP.NET MVC 응용 프로그램에서 두 번째로 사용할 첫 번째 ASP.NET MVC 응용 프로그램을 얻을 수있는 비슷한 메커니즘이 있습니다. 첫 마스터 페이지에 콘텐츠 제공 업체가 있습니까?

IFrame 또는 AJAX가 실제로 전화를 걸고 있습니까?

+0

Google에 기존 항목이 표시되지 않지만 iframe의 위치를 ​​추적하기 위해 부모 창에서 jquery 기록 플러그인 또는 URL 해시를 사용할 수 있습니다. 그러면 사용자가 iframe 페이지를 북마크에 추가 할 수 있습니다. – Ryan

답변

1

콜린,

나는 같은 응용 프로그램 풀에서 두 사이트를 실행하려면 추가로 필요로 당신과 매우 비슷한 요구 사항을 가지고있다. 실제로 portable areas을 사용하여 개념 증명을 제시 할 수있었습니다. 슈퍼 우아한 아니지만, 트릭을 할 것이라고 생각합니다.

더 나은 방법을 찾으면 알려주세요.

0

또 다른 옵션은 자신의 라이브러리에 공유 모듈에 대한 컨트롤러와 논리를 작성하는 것입니다. ASP.Net MVC 응용 프로그램은 괜찮은 별도의 라이브러리에있는 컨트롤러를 처리합니다.

단점은이 '공유'모듈을 사용하는 모든 응용 프로그램에는 자체보기가 있어야한다는 것입니다. 즉,보기를 복제하고 별도로 관리해야하지만 적어도 컨트롤러 논리를 복제하지 않아야합니다.

이것은 비슷한 시나리오에서 수행 한 작업입니다. 나는 this example에 따라 '공유 라이브러리'에 몇 가지 컴파일 된보기를 포함 시켰지만 스크립트와 이미지를 실제로 포함 할 수 없었기 때문에 그만한 가치가없는 것 같습니다.