2012-03-17 5 views
1

WebControl에서 상속 된 사용자 지정 컨트롤을 작성했습니다. (참고 : 사용자 정의 컨트롤이 아님).사용자 지정 컨트롤을 App_Code에 배치해야합니까?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI.WebControls; 

namespace Taopi.WebComponents 
{ 
    public class RatingLabel : WebControl 
    { 
     public RatingLabel() 
      : base("span") 
     {  } 
     //... 

나는 /App_Code에 배치하고, 웹 페이지에 다음과 같이 등록 및 사용 : 나는 /Components에 RatingLabel를 이동시킬 때까지

<%@ Register TagPrefix="uc" Namespace="Taopi.WebComponents" %> 
... 
<uc:RatingLabel Rating='<%# Eval("rating") %>' runat="server" /> 

그들은 잘 실행 날에 의해 cerated 폴더이다. 웹 사이트를 실행하려고하면 "알 수없는 서버 태그 uc : RatingLabel"이라고 말하면 오류가 발생합니다.

나는 등록이 잘못되었다고 생각하므로 어떤 수정이 필요합니까? 사용자 지정 컨트롤을 App_Code에 두어야합니까?

외부의 DLL을 참조하는 것을 제외하고 일반적으로 어디에서 사용자 지정 컨트롤을 배치합니까? "추천"위치가 있습니까?

답변

0

이전에이 문제가있었습니다. AppCode 폴더 외부에 코드를 저장할 수있는 유일한 방법은 "클래스 라이브러리"프로젝트 나 외부 DLL을 제안하는 것입니다 (여러 프로젝트에서 사용할 수 있으므로 필자가 선호하는 방식 임).

"웹 사이트"프로젝트 대신 "웹 응용 프로그램"프로젝트 유형을 사용하는 경우 코드를 아무 곳이나 저장할 수 있습니다.

+0

귀하의 통찰력에 감사드립니다. 필자가 작곡하는 웹 사이트는 작기 때문에 다른 프로젝트를 만드는 것은 너무 힘들어 보인다. 사용자 지정 컨트롤을 App_Code에 배치해야하므로 최소한 두 개의 폴더/App_Code/WebControls를 만들어 사용자 지정 컨트롤을 배치하고 코드 숨김에 필요한 클래스를 배치하는/App_Code/Business라고하는 것이 좋습니다. – Gqqnbig

+0

네, 그렇게하면 더 가벼워 질 것입니다. 그러나 "클래스 라이브러리"프로젝트를 추가하는 것은 매우 쉽습니다 (파일/추가/새 프로젝트 - 클래스 라이브러리 유형 선택). 그런 다음 기존 프로젝트에서 참조를 추가하면이 프로젝트를 다른 웹 사이트에서도 참조 할 수 있습니다. –

관련 문제