ASP.NET ascx与aspx - 你重用用户控件吗?

spl*_*tne 11 asp.net user-controls

我们的团队正在开发一个相当大的ASP.NET Web项目,该项目最初是在ASP.NET 1.0中启动的,并且已经多次移植到所有新版本的.NET中.

我们广泛使用了用户控件(ascx).但回想起来,我怀疑这是一个好的决定.这些控件中很小一部分通过不同页面重复使用(可恢复).应用程序中只添加了这一层复杂性,使某些事情变得更加复杂.

对于可重用,小型和专用控件,我们使用服务器控件(继承自WebControl类),这非常有效.

所以我的问题:开始一个新项目,是否可以摆脱ascx并在页面中实现所有(aspx)?也许除非你做了很多用户控件的动态加载(我们没有)?你有什么经历,你会建议什么?

Chr*_*rts 17

我们有一些项目广泛使用ASCX控件,而其他项目则没有.根据我的经验,你必须根据具体情况来决定.

我最喜欢使用ASCX控件的两个原因是:

  1. 您正在实现一个UI功能,它将出现在许多不同的页面上(或在同一页面上多次).
  2. 您希望封装一些复杂的功能,以使其与页面的其余部分区分开来,从而使您的代码更易于阅读和更易于维护.

ASCX控件可能很有用,但是你真的需要确保只在有充分理由的时候使用它们 - 否则 - 正如你所说,你可能会在代码库中添加不必要的复杂性.

  • 如果您确实正在实现一些频繁出现/封装的 UI,为什么不使用 *母版页* 来代替呢? (2认同)

Max*_*xam 6

如果使用得当,用户控件可以提高维护和可重用性,并且创建速度通常比服务器控件更快.

您提到在之前的项目中,很少有用户控件被重用.这似乎与糟糕的计划有关,而不是用户控制本身的固有缺陷.

我想一个好的经验法则是查看你的设计,看看你是否一遍又一遍地使用同一组控件,在这种情况下使用用户控件是有意义的.