2010-06-30 7 views
3

내 'GeneralControls'어셈블리 (클래식 DLL)에 일부 컨트롤이 있습니다.이 컨트롤은 .ascx 파일 (및 코드 비하인드)로 구성되어 있습니다.다른 어셈블리의 ASP.NET 컨트롤

은 그 DLL을 참조하고, 같은 컨트롤을 사용하고 있습니다 :

<%@ Register Tagprefix="g" Assembly="GeneralControls" Namespace="GeneralControls.UI" %> 


<g:FooterControl ID="Footer" runat="server" /> 

하지만, FooterControl는 NullArgumentException을 던져, 코드 숨김에서 사용되는 일부 다른 컨트롤 (등등 라벨 등), 그가 포함되어 있습니다. ascx 컨트롤을 공유하는 올바른 방법은 무엇입니까? 미리 감사드립니다.

답변

3

사용자 컨트롤 (.ascx)은 제공되는 웹 프로젝트에 있어야합니다. 공유 목적으로 다른 어셈블리로 이동할 수 없습니다. 당신이 공유 컨트롤을 가지고 싶다면

, 당신은 등, 선언적 패턴이없는 사용자 지정 서버 컨트롤이 모든 자식 컨트롤이 재정을 CreateChildControls으로 코드를 작성해야합니다

http://support.microsoft.com/kb/893667 (섹션라는 제목의 참조가 필요 "사용자 정의 컨트롤과 사용자 정의 컨트롤 사이의 기본적인 차이점은 무엇입니까?")

+0

오, 나는 이것이 사실이 아니길 바래서 해결 방법이 있거나 어떤 방법으로 ascx를 컴파일하는 방법입니다. 고마워요. – nothrow

관련 문제