我必须在这里错过一个技巧。我有一个.aspx
页面(使用母版页,如果这很重要),其中包含以下代码:
<me:ModuleContainer runat="server" ID="topmodules"></me:ModuleContainer>
现在由于某种原因,我调用了ModuleContainer
的UserControl,控件上的所有属性都被正确调用,但它似乎没有用.ascx
中的子项填充控件文件。无论我在代码中尝试访问它们(在Load和PreRender上试过),值始终为null。
但如果我使用LoadControl
方法以编程方式添加它(但不仅仅是通过声明ModuleContainer
的新实例,它就有效。
理想情况下,我希望在页面中加载时能够正常工作。我做错了什么?
答案 0 :(得分:1)
在提出问题后的一个小时内甚至没有,我就把它解决了。
控件未在web.config
文件中注册为.ascx
文件。我试图使用这个标记注册整个命名空间。
<add tagPrefix="me" assembly="My.Website" namespace="My.Website.Controls" />
但是当我使用这个标记时,它工作正常
<add src="~/Controls/ModuleContainer.ascx" tagName="ModuleContainer" tagPrefix="me" />