2011-05-16 2 views
1

다른 결과는 읽었지만 내 문제는 없습니다.페이지에는 서버 쪽 양식 태그가 하나만있을 수 있습니다.

runat = "server"와 함께 두 개의 양식 태그가 있다는 것을 알고 있습니다. 내 문제는 내가 마스터 페이지 파일에 메뉴 등을 처리하는 양식이 필요하다는 것과 응용 프로그램의 '하위 페이지'에도 작업을 처리하는 양식 태그가 필요하다는 것입니다.

'자식'페이지에서 form 태그를 제거하려고했지만 코드 숨김에서 마스터 페이지에서 form 태그를 사용하고 있지 않습니다. 이로 인해 컴파일이 실패합니다 ("이름 'form1'은 현재 컨텍스트에 존재하지 않습니다.)

내 '하위'페이지를 유지하면서 마스터 페이지의 메뉴를 유지하는 목표를 달성하려면 어떻게해야합니까? 컴파일 할 때 오류가 있습니까?

+0

'form' 코드를 게시 할 수 있습니까? –

답변

4

모든 하위 페이지 (모든 제안)에서 모든 양식 태그를 제거하는 경로를 찾아 간다면 마스터 페이지의 양식 태그에 대한 참조를 하위 페이지에서 액세스 할 수있는 속성으로 추가 할 수 있습니다.

public HtmlForm form1 { 
    get { return this.form1; } 
} 

이 그럼 당신은 자식 페이지에서 참조 할 수 있습니다 : 여기 뒤에 마스터 페이지 코드 것

public void MyMethod() { 
    HtmlForm theForm = ((MyMasterPageType)this.Master).form1; 
    theForm.Controls.Add(...); 
} 

그리고 당신은 자식 페이지에 MasterPageType을 설정하면, 당신은 (this.Master.form1와 디렉토리를 참조 할 수 있습니다 이것을 하위 페이지의 마크 업 페이지에 추가하십시오.) :

<%@ MasterType TypeName="MyMasterPageType" %> 
+0

감사합니다. 훌륭하게 작동합니다. – Kolten