2009-04-06 2 views
0

페이지, Default.aspx 및 UserControl, HelloControl.ascx가 있습니다. 다음과 같이 페이지에서 내가 동적으로 컨트롤을 인스턴스화이 잘 작동, 사용자 컨트롤이 응답을 "제어에서 안녕하세요"기록UserControl은 언제 어디서 컴파일합니까?

protected void Page_Load(object sender, EventArgs e) 
{ 
    HelloControl c = Page.LoadControl(typeof (HelloControl), null) as HelloControl; 
    c.Greet(); 
} 

. Default.aspx에 @Register 지시문이 없지만 클라이언트 컴퓨터에서 유사한 동적 컨트롤 만들기를 시도하면 "형식 또는 네임 스페이스가 없다"라는 오류가 발생합니다.

나는 @Register 지시어가 필요하다는 MS의 의견을 받아 왔지만, 분명히하지는 않습니다. @Register 지시어가 그것을 참조하는 경우 사용자 컨트롤이 컴파일되는 방법과 방법에 대한 정보를 가진 사람이 도와 줄 수 있습니까?

편집 : LoadControl에 대한 초기 호출이 끊어지면서 다른 방향으로 조사를 시도했지만 여전히 문제를 재현 할 수 없습니다. 다음 코드는 @Register 지시어가 없어도 내 dev 컴퓨터에서 정상적으로 작동합니다. 제어 할 수

protected void Page_Load(object sender, EventArgs e) 
{ 
    HelloControl c = new HelloControl(); 
    Response.Write(c.Greet()); 
} 

답변

0

사용하는 전체 경로 :

this.Controls.Add(Page.LoadControl("~/CustomControls/HelloControl.ascx"));

+0

왜 그 차이를 만들 것인가? – ProfK

관련 문제