Asp.net 为什么必须在web.config中定义浏览器帽

Asp.net 为什么必须在web.config中定义浏览器帽,asp.net,web-config,browsercaps,Asp.net,Web Config,Browsercaps,我在我的web.config中获得了以下部分: <browserCaps> <case match="^Mozilla/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*"> <case match="^[5-9]\." with="${version}">tagwriter=System.Web.UI.HtmlTextWriter</case> </case&g

我在我的web.config中获得了以下部分:

<browserCaps>
  <case match="^Mozilla/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
    <case match="^[5-9]\." with="${version}">tagwriter=System.Web.UI.HtmlTextWriter</case>
  </case>
</browserCaps>

tagwriter=System.Web.UI.HtmlTextWriter
它一定来自于我们开始这个项目的一个老项目。我们大约在4年前开始了这个项目

无论如何,看到这一点,它似乎在说“如果用户代理是Mozilla,那么使用不同的HtmlTextWriter”

我想不同的HtmlTextWriter意味着相同服务器代码的标记结果不同。如果是这样的话,我认为这是非常恶劣的

有人能证实是不是这样吗?也许我误解了整件事?

看看这个:


看起来这在.net 2(2005年)问世时就被弃用了。

很有意思,但这并没有告诉我这个配置部分做了什么。从MSDN链接中我可以理解,您文章中的browserCaps条目示例告诉asp.net,如果Mozilla是用户代理,则使用System.Web.UI.HtmlTextWriter作为标记编写器。正是你所想的。。。基于用户代理呈现不同的标记实际上是一种非常常见的做法(特别是对于移动应用)。