Joh*_*zen 8 asp.net-mvc xhtml svg content-type http
我需要能够将内容类型"text/xml"发送到Firefox和Safari,以允许它们在我的一个页面中呈现内联SVG.
只要内容类型是"text/xml",这就有效.
但是,当IE点击页面时,如果内容类型不是"text/html",它会尝试呈现XML文档树,而不是页面的XHTML内容.
ASP.NET MVC中设置所有视图的HTTP Content-Type的"正确方法"是什么?
请记住,我将把视图渲染为ViewResults.
好的,要清除任何混淆:
User Agent Content-Type Desired
-----------------------------------
IE 5.5 text/html
IE 6 text/html
IE 7 text/html
IE 8 text/html
Firefox text/xml
Safari text/xml
Chrome text/xml
Run Code Online (Sandbox Code Playgroud)
等等.
列出的所有浏览器都以某种方式支持SVG内联.我有一致的传递格式,保存内容类型.
您可以查看属性Request.Browser并以这种方式嗅出IE,并以这种方式返回正确的视图,尽管这很容易出问题.这不是最佳选择,因为IE 可能会在将来支持它.
public ActionResult MyAction() {
if (this.Request.Browser.Browser == "IE") {
return View("NonSVG");
} else {
return View("SVG");
}
}
Run Code Online (Sandbox Code Playgroud)
值得关注的东西可能是Codeplex上的这个页面.它们定义了一个Browser被调用的属性AcceptsImageSVG,但它看起来像是面向移动浏览器,不知道它是否可以在你的情况下使用.
根据 W3,您应该使用application/xhtml+xml而不是text/xml表示 XHTML:
http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#text-xml
上面的文章还指出不text/html应该用于 XHTML 内容。
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |