代码之家  ›  专栏  ›  技术社区  ›  Adrian Grigore

如何在web.config中设置默认的文本/html内容类型?

  •  4
  • Adrian Grigore  · 技术社区  · 16 年前

    我想将ASP.NET MVC应用程序中网页的默认内容类型设置为text/html。

    我知道这可以通过在我的所有<%page%>元素中添加contenttype=“text/html”来完成,但我更喜欢使用web.config。我该怎么做?

    谢谢,

    阿德里安

    编辑: 我知道“text/html”是ASP.NET的默认值,但由于未知原因,Opera仍然尝试将我的网站解析为XHTML,除非我在<%page%>元素中显式设置内容类型。

    4 回复  |  直到 16 年前
        1
  •  8
  •   Blegger    16 年前

    我们也遇到了同样的问题,问题是从codeplex获得的mobile.browser文件中有一个bug,它强制ASP.NET总是告诉桌面版本的Opera我们发送XHTML。我删除了mobile.browser文件,它解决了这个问题。似乎我们能找到的唯一替代mobile.browser指令的方法就是在每个视图上指定contenttype=“text/html”<%@page%>标记。即使在global.asax中设置内容类型,也不会产生任何差异。

    更新:我发现从mobile.browser文件中删除所有名为“preferredrenderingmime”的功能节点将解决此问题,并且仍然允许我们识别移动浏览器。

        2
  •  1
  •   Darin Dimitrov    16 年前

    ASPX视图的内容类型已设置为 text/html .

    Content-Type: text/html; charset=utf-8
    
        3
  •  1
  •   HectorMac    16 年前

    “text/html”是httpresponse对象中此属性的默认值。

    除非你需要把它设置成别的东西,否则什么都不要做。若要将其设置为其他默认值,您可能需要创建一个设置属性的基本页类并从此类继承。

        4
  •  1
  •   David    16 年前

    您可以在Global.asax.cs的Global_BeginRequest事件处理程序中进行编程:

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        HttpContext.Current.Response.ContentType = "text/html";
    }
    

    仅供参考,文档说“text/html”无论如何都是ASP.NET默认值: http://msdn.microsoft.com/en-us/library/ms525208(VS.85).aspx