最初的问题是如何制作最可维护的代码,因为我需要一个在大多数 WebForms 中非常相似但不相同的菜单栏。
乍一看,我以为我想在自定义用户控件中制作一个占位符,该控件放置在母版页中,然后访问占位符,将独特的内容放入 WebForm 中,一切都很愉快且可维护。在阅读表格并通过反复试验后,我意识到我尝试过的每个解决方案都存在一些问题:
- 将占位符控件放在用户控件中会使占位符及其每个内容难以在 Web 表单中访问(依赖于 FindControl("ID") 的嵌套实例),事件很难冒泡(我假设我必须这样做当控件在引用它的代码中创建时)或绑定(尽管引用:http: //msdn.microsoft.com/en-us/library/t4z863dh (vs.71).aspx,但尚未成功),如果我想移动/重命名控件,代码很难维护。
- 嵌套控件会产生同样的问题,因为我想使用一个控件 - 在许多页面上进行小修改。如果我嵌套,那么我仍然必须具有彼此的交叉控制知识,这在 ASP.NET 中是困难的。无论如何,如果我嵌套了用户控件,那么我还需要每个 WebForm 一个唯一的用户控件,对吧?
- 将代码复制并粘贴到每个 WebForm 中虽然很简单,但也是重复且容易出错的。
- 显然,我什至不应该尝试继承用户控件来创建唯一的孩子:如何(如果有的话)让 ASP.NET UserControl 从另一个 UserControl 继承?.
我是 ASP.NET 的新手。在这种情况下,我应该使用一些通用策略来制作良好的可维护代码吗?