Javascript XHTML与使用content type=“application/XHTML+xml”的组件不兼容
我正在使用ASP.NET 4.0并测试ASP.NET XHTML与某些组件的兼容性,发现服务器控件Javascript XHTML与使用content type=“application/XHTML+xml”的组件不兼容,javascript,asp.net,xhtml,menu,content-type,Javascript,Asp.net,Xhtml,Menu,Content Type,我正在使用ASP.NET 4.0并测试ASP.NET XHTML与某些组件的兼容性,发现服务器控件与XHTML不能正常工作 我希望浏览器将页面视为XHTML,而不是HTML文档,这是HTML/文本内容类型的默认设置。因为只有最新的浏览器才能识别这种模式,也就是从版本9开始,我使用的是内容类型协商,请参阅:在浏览器支持或不支持时正确处理 void Application_PreSendRequestHeaders(object sender, EventArgs e) {
void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
if (Array.IndexOf(Request.AcceptTypes, "application/xhtml+xml") > -1)
{
Response.ContentType = "application/xhtml+xml";
}
}
这就是说,我的应用程序会相应地运行,除了提前谢谢。问题本身没有解决。为了使网站能够正确呈现,我只需继续将其页面作为html/文本提供,删除内容类型协商。我不能提供太多帮助,但我不喜欢asp强迫你做这样的事情。我希望对这样的事情有更多的控制。我不认为内容型谈判有什么好处。在真正的XHTML模式中存在着显著的DOM差异,绝大多数脚本都不是为了处理这种差异而编写的,它会破坏IE中的缓存,除非您在不设置Vary头的情况下这样做,否则它会破坏公共缓存。@bobince感谢您的评论。事实上,我已经对这个问题做了一些研究,我意识到使用mime类型application/XHTML+xml服务的真正XHTML页面与使用mime类型text/html服务的符合标记的XHTML页面之间存在着各种不同。在前者中,页面被视为XML文档,而在另一种情况下,页面则不被视为XML文档。Javascript和DOM利用率也存在差异,请参见:。ASP.NET 4.0组件还不能与真正的XHTML页面完全兼容。