2011-12-19 3 views
9

실행중인 솔루션에는 동일한 마스터 페이지로 많은 web forms 응용 프로그램이 포함되어 있으며 마스터 페이지와 해당 컨트롤에 대한 클래스 라이브러리 프로젝트를 만들고이를 dll 각 웹 양식 응용 프로그램 내에 프로그래밍 방식으로 마스터 페이지를 할당하십시오.ASP.Net MVC보기에 대한 마스터 페이지로 웹 양식 마스터 페이지 사용

이제 우리는 두 가지 새로운 응용 프로그램을 우리 솔루션에 추가 할 것이지만 우리는이 새로운 응용 프로그램을 빌드하는 데 ASP.Net MVC 3을 사용하기로 결정했습니다.

문제는 새 응용 프로그램에 대해 동일한 마스터 페이지를 사용해야한다는 것입니다. 코드를 사용하여 뷰의 마스터 페이지를 설정하려면 어떻게해야합니까?

마스터 페이지가 클래스 라이브러리 프로젝트임을 기억하십시오. 이 기사에

답변

3

봐는 MVC와 웹 양식을 혼합에 대한 개요를 얻을 수 있습니다 :

또 다른 흥미로운 프로젝트가 Zeus이다가/MVC 솔루션이 혼합 된 웹 양식에 관해서 . Webform 페이지에 HtmlHelper 및 UrlHelper를 사용하는 도우미가 포함되어 있습니다.

+0

위대한 게시물 주셔서 감사하지만 클래스 페이지 프로젝트 (dll)로 웹 프로젝트 내부의 마스터 페이지에 대해 이야기합니다. –

+0

이 게시물에서는 ASPX 엔진과 Razor Engine 간의 마스터 페이지 공유에 대해 설명합니다. ASP.Net MVC 3.0 Razor Engine 프로젝트와 함께 일반 ASP.Net Mater 페이지를 공유하는 방식은 동일합니까? – HaBo

+0

@HaBo : 귀하의 질문을 정확하게 이해하지 못합니다. 이 게시물은 ASP.NET MVC Razor Views와 함께 Webforms Masterpage를 사용하는 것에 대해 설명합니다. – Jan

1

MVC 경로를 앞으로 이동하려면 마스터 페이지를 레이아웃으로 변환하는 데 시간을 투자해야합니다. 다른 모든 것은 해킹/해결 방법이 될 것입니다.

1

아미르, here에 작업 샘플을 업로드했습니다. 단계,

1) here에서 샘플 응용 프로그램을 다운로드하여 변환했습니다.

2)이 솔루션에 MVC 3 응용 프로그램을 추가하고 위의 솔루션의 클래스 라이브러리 참조를 추가하십시오.

3) MVC보기 (보기에서 MasterPageFile="~/MasterPageDir/MasterPage.master" 또는 컨트롤러 리턴 View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation); 중 하나)에서 마스터 페이지를 지정하십시오.

4)이 줄은 global.asax에 넣으십시오.

MasterPageVirtualPathProvider vpp = new MasterPageVirtualPathProvider(); 
HostingEnvironment.RegisterVirtualPathProvider(vpp); 
+0

+1 당신을 위해 대답하지만 그것은'VirtualPathProvider'에 달려 있습니다. 불행히도 우리의 오래된 프로젝트는 그것을 사용하지 않습니다 :(. 내가 마스터 페이지 HTML을 내 _layout 뷰에 복사하고 스타일과 이미지를 프로덕션 버전 (온라인)으로 참조해야하는 것처럼 보입니다. –

관련 문제