必须将自定义控件放在App_Code中吗?

时间:2012-03-17 16:03:23

标签: asp.net custom-controls

我写了一个从WebControl继承的自定义控件。 (注意:不是用户控件)。

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中,并在网页上注册并使用如下:

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

他们一直运行良好,直到我将RatingLabel移动到/Components,这是我的文件夹。当我尝试运行网站时,我收到错误消息“未知服务器标记uc:RatingLabel ”。

我认为注册错误,需要进行哪些修改?必须将自定义控件放在App_Code中吗?

我有另一个问题,你通常放置自定义控件在哪里(除了引用外部DLL)?有没有“建议”的位置?

1 个答案:

答案 0 :(得分:0)

我之前遇到过这种情况。我发现你可以在AppCode文件夹之外存储代码的唯一方法是按照你的建议添加一个“类库”项目或外部DLL(无论如何,这是我首选的方法,因为它可以在多个项目中使用)。

或者,如果您使用“Web应用程序”项目类型而不是“网站”项目,则可以将代码存储在任何位置。