我对控制适配器的理解是,它们旨在为不同的浏览器提供不同的 HTML 呈现(因此,您在 .browsers 文件中注册它们......)。
但是,似乎人们只是为默认浏览器注册适配器,并使用它们来覆盖 ASP.Net 控件的 Render 方法。
你相信这是真的吗?如果是这样,您为什么不直接从控件继承并以这种方式覆盖 Render 方法,而不是使用适配器?
覆盖的一个好处是您可以向其添加更多属性,这是适配器无法做到的。
我只是想确保我不会错过一些使适配器比覆盖更好的秘诀。
我对控制适配器的理解是,它们旨在为不同的浏览器提供不同的 HTML 呈现(因此,您在 .browsers 文件中注册它们......)。
但是,似乎人们只是为默认浏览器注册适配器,并使用它们来覆盖 ASP.Net 控件的 Render 方法。
你相信这是真的吗?如果是这样,您为什么不直接从控件继承并以这种方式覆盖 Render 方法,而不是使用适配器?
覆盖的一个好处是您可以向其添加更多属性,这是适配器无法做到的。
我只是想确保我不会错过一些使适配器比覆盖更好的秘诀。
是的,为默认浏览器注册适配器是很常见的。这背后的主要思想是覆盖现有控件的呈现功能。例如,所谓的“Css Friendly”控件适配器——这项工作主要是为了使控件生成更多符合标准的 html。
基本上,您在这里缺少的是,您可以在使用标准 asp.net 控件的现有站点上删除一组针对默认浏览器的控制适配器,并获得“更好”或“不同”标记,而无需更改您的站点使用您创建的自定义控件。