2011-02-08 5 views
0

내 웹 응용 프로그램에 기본으로 사용할 페이지를 만들어 공통 기능을 추가했습니다.페이지에서 어떻게 상속합니까?

The type or namespace name 'CentralPage' could not be found (are you missing a using directive or an assembly reference?)

참고 : 나는 그것에서 inhirite하려고 할 때하지만 VS는 나에게 다음과 같은 오류를 제공 난 그냥 기본 페이지의 기능 코드 숨김합니다.

어떻게해야합니까?

+0

페이지의 코드 숨김을 게시하는 것이 유용 할 수 있습니다. –

답변

5

페이지에서 상속하려면 기본 페이지가 필요합니다. 귀하의 코멘트에서, 나는 다른 네임 스페이스에서 두 가지를 넣어 한, 어쩌면 당신을 도울 것입니다 :

namespace Project.BasePages 
{ 
    public class BasePage : Page 
    { 
    } 
} 

은 모든 다른 페이지 대신 기본 PageBasePage에서 상속해야합니다

using Project.BasePages; 

namespace Project.ContentPages 
{ 
    public partial class Page1 : BasePage 
    { 
    } 
} 

또는

namespace Project.ContentPages 
{ 
    public partial class Page1 : Project.BasePages.BasePage 
    { 
    } 
} 

BasePage은 완전한 ASPX 페이지가 아니며 보통 *.cs 클래스 파일이어야합니다.

+0

감사합니다. BasePage가 다른 파일에 존재할 때 작성한 것을 사용할 수 없다는 것을 알고 있습니다. – Homam

+0

@ 존 : 두 클래스가 서로 다른 파일에있는 것이 정상입니다. 같은 프로젝트에 있고 같은 네임 스페이스에 있다면 서로 잘 볼 수 있어야합니다. 'BasePage'가'Page1'과 다른 네임 스페이스에 있다면, 올바른 네임 스페이스를 포함하기 위해 파일의 맨 위에'using' 문이 있어야합니다. –

+0

@ Graham Clark : 네임 스페이스가없는 것 같습니다! 기본 페이지 ::'base ::'를 통해 액세스 할 수 없습니다. – Homam

0

공통 기능을 위해 마스터 페이지를 사용해야합니다. 어쨌든 당신이 본질적으로 가지고있는 네임 스페이스와 같은 네임 스페이스에있는 중앙 페이지입니다. 완전한 이름 또는 using 지시문을 사용하십시오.

+0

죄송합니다, [정규화 된 이름]을 얻는 방법? – Homam

+0

@ 존 : 정규화 된 이름은 클래스의 전체 네임 스페이스와 그 이름 (예 : 'var sb = new System.Text.StringBuilder()'. 파일의 맨 위에 using using System.Text; 문이 있으면'var sb = new StringBuilder()'를 입력하면됩니다. –

관련 문제