必须是ASP.NET服务器控件属性属性

时间:2011-03-11 18:31:00

标签: asp.net custom-server-controls servercontrols asp.net-controls

我有一个自定义的ASP.NET服务器控件CustomControl,其属性属性为Path

如果未明确指定Path,那么我希望抛出异常。

例如,

<myControls:CustomControl Path="somedirectory/someotherdirectory/somefile.ext" runat="server" />

应编译,

<myControls:CustomControl runat="server" />应该抛出异常。

我意识到我可以在Path属性的getter中执行此操作,但是有一些属性需要这个吗?

更新

除了在代码隐藏属性的getter方法中使用外,是否有任何机制可以验证属性属性的值?

4 个答案:

答案 0 :(得分:7)

您可以在自定义控件的init事件中进行检查,并抛出异常。

<强>更新

有;在init事件中检查它。在主机(页面或用户控件)init事件之后调用init的控件。因此,如果它为null或空

,则可以抛出异常

答案 1 :(得分:1)

我认为这不应该是编译时检查。

毕竟,在page_load或类似事件期间,可能会在后面的代码中提供属性值。

答案 2 :(得分:0)

没有必要的属性。执行此操作的最佳位置是Path属性的getter。

答案 3 :(得分:0)

不,没有办法强制页面框架执行此操作。您需要在运行时在代码中执行此操作,并在未提供值时引发异常。否则我们永远不会遇到“废话,我忘记了runat =服务器部分”错误:))