有没有理由使用标准的HTML控件(input type=text,input type=checkbox)而不是ASP.NET控件(asp:TextBox,asp:CheckBox)来提高性能?
在我看来,这只是一种微小的优化。虽然可以提高性能,但并不明显。另一方面,您会失去服务器控件所提供的很多灵活性。
您可以尝试通过禁用不需要视图状态的控件来减少视图状态的大小。这将减少生成页面的大小并提高性能。
EnableViewState="False"
因此,如果您有大量控件,则会使底层页面的大小膨胀。一般而言,只使用满足您需求的内容即可。
在大多数情况下,这并不会有什么区别,但是如果您不需要这些功能,请保持页面简洁。
对于性能优化,一如既往的:它取决于具体情况。在您的项目中进行测试,看看是否有所改善。
另外,使用 .net 4.0 之后,使用服务器控件的缺点也不再存在,因为您可以将 ClientIDMode
设置为 Static
,这将使您完全控制控件上的 ID。以前,仅使用标准的 textbox
或 button
(不带 viewstate
)仍然会呈现疯狂的不可读 ID,因为 Naming Containers 的工作方式。但是那些日子已经过去了 :)
请记住您的三个选项:
runat="server"
添加到现有的 html 标签中(例如:<input>),您将能够将其作为 HtmlControl
访问。<asp:* runat="server" />
)第三种选项的缺点是您并不总是知道渲染后的 html 标记会是什么样子,并且对其有较少的控制权。我个人只在需要更高级的控件(如 GridView
、FormView
和第三方控件)时才使用选项 3。对于我需要在服务器上引用的普通 html 标记,我更喜欢选项 2。