2011-05-10 2 views
0

내가 작업하고있는 프로젝트는 원래 WebForms 였고 나중에 Asp.Net MVC로 마이그레이션 된 프로젝트였습니다. 3 페이지는 아직 Webforms를 사용하고 있으며 다시 작성할 필요가 없습니다.내 MVC 프로젝트에서 Webforms 또는 MVC 페이지를 통해 마스터 페이지를 호출 한 경우 어떻게 검색합니까?

동일하게 보이는 두 개의 별도 마스터 페이지를 유지 관리하지 않으려면 MVC.MasterWebforms.Master 두 개의 마스터 페이지가 있습니다. Webforms.MasterMVC.Master을 마스터 페이지로 설정하여 사용자가 Webforms 또는 MVC 페이지를보고 있는지 항상 내 메뉴에 새 도구 링크를 추가합니다. Webforms.Master에는 ajaxToolkit 스크립트 관리자 만 있습니다.

Telerik 지원을 추가 할 때까지 지금까지 모든 것이 제대로 작동했습니다. 문제는 당신이 예외를 얻을 당신이, 웹폼 페이지에 HTML을 도우미를 사용할 수 있다는 것입니다 A ViewMasterPage can be used only with content pages that derive from ViewPage or ViewPage<TModel>.

나는 Telerik의 스크립트와 스타일 시트 등록은 웹 양식 페이지를 실행하는 경우, 내가 이상적으로

처럼 뭔가를하고 싶은 상관하지 않기 때문에
<% if (!PageIsWebforms) 
    { 
     Html.Telerik()..... 
    } 
%> 

안타깝게도 내부 페이지가 WebForms 페이지인지 여부를 결정하는 좋은 방법을 생각할 수 없습니다. 아무도 내가 이것을 성취 할 수있는 아이디어가 있습니까?

답변

2

MVC 페이지가 System.Web.UI.Page가 아닌 다른 것을 상속하는 경우 Page is System.Web.MVC.ViewPage을 테스트 할 수 있습니까? 마크 업을 쉽게 만들 수있는 속성을 만들 수 있습니다.

+0

이렇게했습니다. 페이지가 MVC 페이지이면'Page' 속성은'System.Web.MVC.ViewPage'를 상속받습니다. 따라서'Page가 System.Web.MVC.ViewPage'인지 확인하면 페이지가 MVC인지 아닌지를 알 수 있습니다. 감사! – KallDrexx

+0

@KallDrexx, 더 직접적인 테스트는'Page is System.Web.MVC.ViewPage'를 확인하는 것입니다 (주의 **는 ** ** **이 아닙니다 **). 내 대답을 편집하여 실제 MVC 페이지 유형을 포함합니다. –

+0

그래, 나는 단지 그것을 알아 차리고 그것을 편집했다 :) – KallDrexx

관련 문제