如果不为特定浏览器呈现,为什么要使用适配器来扩展ASP.Net控件?

如果不为特定浏览器呈现,为什么要使用适配器来扩展ASP.Net控件?,asp.net,control-adapter,Asp.net,Control Adapter,我对控制适配器的理解是,它们的设计允许不同浏览器呈现不同的HTML(因此,您可以在.browsers文件中注册它们…) 然而,人们似乎只是在为默认浏览器注册适配器,并使用它们来覆盖ASP.Net控件的呈现方法 你相信这是真的吗?如果是这样,为什么不直接从控件继承并以这种方式重写Render方法,而不是使用适配器呢 重写的一个好处是,您可以向它添加更多属性,这是适配器无法做到的 我只是想确保我没有遗漏一些使适配器比重写更好的秘方。是的,为默认浏览器注册适配器是很常见的。这背后的主要思想是覆盖现有控

我对控制适配器的理解是,它们的设计允许不同浏览器呈现不同的HTML(因此,您可以在.browsers文件中注册它们…)

然而,人们似乎只是在为默认浏览器注册适配器,并使用它们来覆盖ASP.Net控件的呈现方法

你相信这是真的吗?如果是这样,为什么不直接从控件继承并以这种方式重写Render方法,而不是使用适配器呢

重写的一个好处是,您可以向它添加更多属性,这是适配器无法做到的


我只是想确保我没有遗漏一些使适配器比重写更好的秘方。

是的,为默认浏览器注册适配器是很常见的。这背后的主要思想是覆盖现有控件的渲染功能。例如,所谓的-这项工作主要是使控件生成更符合标准的html


基本上,您在这里缺少的是,您可以在使用标准asp.net控件的现有站点上删除一组针对默认浏览器的控件适配器,并获得“更好”或“不同”的标记,而无需更改站点以使用您创建的自定义控件。

我想知道Microsoft是否会放弃此选项浏览器专用适配器的概念,并使适配器更通用,因为每个人似乎都以这种方式使用它们。浏览器专用适配器对于呈现移动/设备特定内容也非常有用,因此即使使用不需要特定呈现的“标准”主浏览器集(IE8、Firefox、Chrome、Opera),移动/设备特定的浏览器渲染仍然有一席之地,适配器体系结构可以很好地处理这一需求,因此我认为浏览器特定适配器的想法不会很快消失。