3

我已经阅读了这个问题中的信息:控件与标准 HTML,但仍然很困惑。

情况是我被要求做一个网络项目,在那里我制作了一个向导。当我完成项目后,每个人都问我为什么使用<asp:Wizard...>. 我认为这是所要求的,但显然不是,所以在此之后我被引导相信服务器控件只是原型工具。

但是,下一个项目我通过 C# 代码隐藏进行数据库查询并通过 html 加载结果。然后我被问到为什么我没有使用网格视图和数据集。

有没有人列出了为什么他们会选择使用特定的 html 控件而不是特定的服务器控件以及为什么?我想我正在寻找一个列表......哪些服务器控件可以使用,为什么?

编辑:我想这个问题是开放式的,所以我会澄清一些更具体的问题......

  1. 是否可以使用非常简单的控件,例如 asp:Label,或者这些最终会浪费空间?否则似乎很难在后面的代码中访问 html。

  2. 是否有一些控件不应该被使用?

  3. 有没有人有一个很好的资源可以向我展示每个控件的优缺点?

4

2 回答 2

3

服务器控件依赖 ViewState,限制了灵活性

服务器控件是向 WinForms 开发人员介绍 Web 开发的强大工具。服务器控件提供的主要好处是状态感和事件驱动的开发模型。然而,自从引入 WebForms 和服务器控件以来,Web 开发的状态已经趋于成熟,作为一个整体,它们正受到越来越严格的观点的挑战。

Server Controls 的主要问题是它们试图过多地抽象 Web 的行为,并且在这样做时,依赖ViewState数据和服务器资源来执行它们的魔法。ViewState 数据在过度使用时会严重膨胀页面大小,从而导致性能问题

现在可以选择退出 ViewState,但到那时最好还是简单地求助于常规的 HTML 控件。

使用 HTML 控件,您可以精确控制网页的内容,并且您可以更灵活地选择您希望网页上的哪些行为。服务器控件提供有限的客户端灵活性,并强制在服务器上执行大量工作,而这些工作可以通过良好的JavaScript 框架在浏览器中轻松执行。

于 2010-04-13T17:10:22.887 回答
1
  1. 是否可以使用非常简单的控件,例如 asp:Label,或者这些最终会浪费空间?否则似乎很难在后面的代码中访问 html。

如果您需要访问服务器端代码中的控件,请使用服务器控件。如果没有,不要。

  1. 是否有一些控件不应该被使用?

不在我的(中级)经验中。向导控件,一旦您知道如何使用它,就会像宣传的那样工作(想象自己对所有功能进行编码,然后进行数学计算)。我已经使用它,它产生了一个流畅且功能强大的多页注册表单,中间保存了数据。

  1. 有没有人有一个很好的资源可以向我展示每个控件的优缺点?

我不这样做,但我建议在正确的情况下使用正确的控件。例如,研究 Repeater 和 GridView 之间的差异,并根据您的需要使用最佳选择。

当然还有其他选择。一方面,MVC正在获得动力。就我个人而言,我还没有致力于学习它。就交互式表单和 AJAX 而言,许多 .NET 开发人员选择使用 JQuery 进行任何验证和任何 AJAX(UpdatePanel 易于使用且效率极低),并使用 JSON 作为服务器端的传输机制。

于 2010-04-13T17:37:53.807 回答