我写了个继承自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")
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        //...我之前把它放在/App_Code里面,在网页上是这么注册和使用的
<%@ Register TagPrefix="uc" Namespace="Taopi.WebComponents" %>
...
<uc:RatingLabel Rating='<%# Eval("rating") %>' runat="server" />
现在我把它放到了/Components里面,结果注册和使用的代码就出错了,提示错误“未知的服务器标记uc:RatingLabel”我有两个问题:
1、自定义控件必须放在App_Code里吗?如果放在别的地方,应该怎么注册和使用?
2、自定义控件一般(推荐)放在哪里?

解决方案 »

  1.   

    namespace Taopi.WebComponents
    这个修改下就可以了。当然也可以在aspx页面上加上命名空间。
      

  2.   

    写哪里都行,我喜欢新建一个peoject,然后给自定义控件分类放到不同文件夹,用的namespace也可能不一样,人啊过热一看就知道什么意思,然后把project添加到solution下,哪个project要用,哪个引用就行
      

  3.   

    之前遇到过这个问题,研究了很久,最后觉得是只能放在app_code里,或者就集成到dll里面,就跟公用类一样
      

  4.   

    是的,但他的方案是新建类库,然后网站引用它。我问的是自定义控件是不是必须放在App_Code里,相关性不大。