假设我有一个抽象类 IA,它有子类 A1、A2、A3。
对于每个子类,我都有一个带有要插入/编辑/查看的 FormView 的页面,其中包含特定于该类的代码。插入/编辑/查看的模板都非常相似,所以大部分都是剪切粘贴,编译器没有问题,不同模板中有相同ID的控件。
像这样的东西:
<asp:FormView>
<InsertItemTemplate>
<asp:Label id="Label1" />
</InsertItemTemplate>
<EditItemTemplate>
<asp:Label id="Label1" />
</EdittItemTemplate>
</asp:FormView>
大部分代码/标记最终在页面中是多余的,因此我将其重构为使用主/内容格式,主页面具有用于插入/编辑/查看模板的内容占位符。
母版页:
<asp:FormView>
<InsertItemTemplate>
<asp:ContentPlaceHolder ID="InsertItemTemplate"></asp:ContentPlaceHolder>
</InsertItemTemplate>
<EditItemTemplate>
<asp:ContentPlaceHolder ID="EditItemTemplate"></asp:ContentPlaceHolder>
</EdittItemTemplate>
</asp:FormView>
和内容页面:
<asp:Content ContentPlaceHolderID="InsertItemTemplate">
<asp:Label id="Label1" />
</asp:Content>
<asp:Content ContentPlaceHolderID="EditItemTemplate">
<asp:Label id="Label1" />
</asp:Content>
在内容页面模板中,我正在做与重构之前完全相同的事情,但现在编译器因错误而崩溃BC30260: 'Label1' is already declared as 'Protected WithEvents Label1 As System.Web.UI.WebControls.Label' in this class.
出于某种原因,它并没有像在模板中那样分离内容块中的控件,即使内容占位符在各个模板中也是如此。
除了重命名我的所有控件之外,有没有办法解决这个问题?