在 ASP.NET Webforms 应用程序的 web.config 中加载多个用户控件应用程序是个坏主意

Bad idea to load several User Controls application wide in the web.config in an ASP.NET Webforms Application

我有一个 ASP.NET Webforms 应用程序,它使用 20 多个用户控件。

目前我正在将它们全部加载到应用程序的 Web.config 文件中,如下所示:

<pages>
  <controls>
    <add tagPrefix="custom" src="~/UserControls/Control1.ascx" tagName="Control1" />
    <add tagPrefix="custom" src="~/UserControls/Control2.ascx" tagName="Control2" />
    ......... and 18 more...
  </controls>
</pages>

这些 UserControl 中的大部分仅在整个应用程序的一到两个页面上使用。在这种情况下,在页面级别加载它们是否更聪明?有人可以解释当用户控件在 webforms 应用程序中注册时会发生什么,如果我知道这一点,也许它会回答这个问题。我希望它不会在每个页面上都添加一个巨大的 ViewState。

我只是想尽一切可能优化我的应用程序。因此,我想知道当您拥有 20 多个控件时,按页面加载控件而不是在应用程序范围内加载控件是否有任何好处。

I am hoping it doesn't add a huge ViewState on every single page.

不,那当然不是。

那么会发生什么?这些键只是发送到试图将标记编译成 C# 代码的渲染引擎。这意味着一长串的控件会花费更多的时间来找到一个项目,但最终这并不重要。我不会担心的。