允许服务器/用户控件上的任何属性/属性

Hau*_*Haf 5 asp.net user-controls properties servercontrol

我注意到在System.Web.UI.WebControls命名空间中的大多数(如果不是全部)标准Web控件上,您可以添加所需的任何属性而不会使页面崩溃.

以asp:Button控件为例.

此代码完全有效:

<form runat="server">
    <asp:Button runat="server" Text="Test button" crapAttribute="crapValue" />
</form>
Run Code Online (Sandbox Code Playgroud)

现在,我有一个自定义服务器控件,如果我添加任意属性,它会崩溃.它只接受定义了相应公共属性的属性.

我得到的错误是这样的"控件没有名为"crapAttribute"的公共属性.

我希望我的自定义控件接受任何属性而不会崩溃.我需要做些什么才能工作?

我看过Reflector中的标准控件,它们确实有各种各样的属性和东西,但是我看到的东西没有立即引起我的注意.

我的自定义控件继承自WebControl的价值.

Ant*_*nes 4

您不必做任何特别的事情来允许将任意属性添加到控件标记中。从 WebControl 派生的事物通常会获取这些属性并将它们转储到 Attributes 集合中。

我想不出这会失败的原因。如果您有的话,您必须记住Attributes在实现中呈现该集合。Render

您能否添加一个无法解决您的问题的新控件的代码的简单示例?