如何在ASP.NET页面上使用Subclassed控件?

Bob*_*man 9 c# asp.net user-controls subclass

我已经子类化DropDownList添加了特定于我的应用程序的功能:

public class MyDropDownList : DropDownList
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

...然后引用它Web.Config,这是我认为事情开始出错的地方:

<pages theme="Main">
    <controls>
        <add tagPrefix="bob" tagName="MyDropDownList" src="~/Components/MyDropDownList.cs" />
    </controls>
</pages>
Run Code Online (Sandbox Code Playgroud)

我对它的引用不起作用:

<tr><td>Category</td>
   <td><bob:MyDropDownList runat="server" ID="Category"... />
Run Code Online (Sandbox Code Playgroud)

我最好的线索是编译器错误信息:

"The file 'src' is not a valid [sic] here because it doesn't expose a type."
Run Code Online (Sandbox Code Playgroud)

我想我在这里误用了如何创建Web用户控件的知识.我想要做的是在ASP.NET页面上引用此控件,就像我父母一样DropDownList.重构为包含a的Web用户控件DropDownList是不可取的,因为我想应用RequiredFieldValidator它.

Joo*_*oop 8

<pages theme="Main">
    <controls>
        <add tagPrefix="bob" namespace="MyProject" assembly="MyProject" />
    </controls>
</pages>
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.


Pur*_*ome 5

@乔普斯答案救了我。

我做了不同的事情是在页面顶部注册名称空间,因为我并不需要它。

即。

<%@ Register TagPrefix="myTagPrefix" Namespace="MySolution.MyProject.Foo.Bar"
        Assembly="MySolution.MyProject" %>
Run Code Online (Sandbox Code Playgroud)

欢呼吧!