2011-03-16 3 views
1

Ayup클래스 라이브러리에서 페이지 클래스를 상속하는 방법

내가 바보 같은 질문을 할 수도 있지만 내가 많은 웹 사이트를 구축 할 필요가 누구를 위해 클라이언트가 (10 +) (asp.net 3.5)하는 각 사이트의 모든 페이지는 동일한 코드 숨김을 갖지만 사이트는 다른 지역에서 실행되며 동일한 템플릿을 따르는 동안 다른 콘텐츠를 갖게됩니다.

나는 사이트 1을 만들고 시작했으며 사이트 2, 3 & 4는 거의 생생하지만 모든 사이트가 기본적으로 동일하기 때문에 코드가 업데이트됨에 따라 더 복잡해질 것입니다. 한 사이트에서 버그를 수정해야 할 경우 모든 웹 사이트에서 수정해야합니다. (이 문제는 복잡해집니다.)

어떻게 든 가능할 지 궁금합니다. 현재 모든 aspx.cs 파일의 클래스 라이브러리를 만들고 각 웹 사이트에서이 DLL을 참조한 다음이 클래스를 .aspx.cs 파일에 상속합니다. 그래서 default.aspx에 각 사이트에서 여전히 "하여 default.aspx.cs"의 CodeFile있을 것입니다,하지만하여 default.aspx.cs는 DLL에서 corresponing 클래스를 상속 것 : 이런 식으로 작업을 수행하는

using WebPagesClass; 
public partial class _Default : WebPagesClass._Default 
{ } 

이유 특정 웹 사이트의 코드를 변경해야하는 경우 (예를 들어 언어의 사소한 변경 사항) 페이지 기능을 무시하고 필요한 부분을 변경할 수 있습니다. 차가없는 다른 모든 페이지는 단일 웹 사이트에서 복사 할 수 있습니다.

이것은 막연하게 가능합니까? 누구도 단일 코드베이스에서 너무 많은 웹 사이트를 관리하는 방법에 대한 킬러 제안을 얻지 못했습니까?

건배이 작업을 수행 할 수

답변

0

물론 T. 그러나 기본 클래스가 System.Web.Page에서 상속 받도록해야합니다.

그래서, 라이브러리를 만들 추가 필요한 참조 (System.Web 등)와 기본 클래스를 만들 :

public class MyBasePage: System.Web.Page 
{ 

} 

는 다음을 지정할 수있는 모든 다른 페이지에 대한 기본 클래스로.

이 단일 클래스를 모든 aspx 페이지의 직접 코드 숨김 클래스로 사용하는 경우 페이지에 고유 한 asp.net 컨트롤이있을 가능성이 높기 때문에 까다로울 수 있습니다. 따라서 코드 숨김 클래스 실제로 각 페이지가 약간 다를 것입니다.

페이지에 비슷한 코드가 많이 있기 때문에이 작업을 수행하고 싶어한다고 가정하지만 특정 코드/컨트롤 선언도 있다고 생각합니다. 그래서 기본 클래스를 만들고 거기에 공통 코드를 넣고 해당 클래스에서 상속받습니다 ...

+0

답장을 보내 주셔서 감사합니다. 각 페이지 유형마다 다른 클래스를 사용하여 다음과 같은 것을 계획하고있었습니다 (모든 페이지마다 하나의 코드베이스가 아님). 모든 페이지가 다를 것입니다. 각 사이트에서 20 페이지라고 말하지만 모든 사이트에는 20 개의 다른 페이지가 있습니다. namespace WebPagesClass {public partial class _Default : System.Web.UI.Page {}} –

0

사이트 사이의 모든 차이점을 ASP.Net 테마 또는 구성 파일로 옮길 수 있습니까?

관련 문제