asp.net-mvc - ASP.NET MVC : How do I send "text/xml" to all browsers but IE?

标签 asp.net-mvc http xhtml svg content-type

我需要能够将内容类型“text/xml”发送到 Firefox 和 Safari,以允许它们在我的一个页面中呈现内联 SVG。

这有效,只要内容类型是“text/xml”。

但是,当 IE 访问页面时,如果内容类型不是“text/html”,它会尝试呈现 XML 文档树,而不是页面的 XHTML 内容。

在 ASP.NET MVC 中设置我所有 View 的 HTTP 内容类型的“正确方法”是什么?

请记住,我将把 View 呈现为 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

等等。

列出的所有浏览器都以某种方式支持内联 SVG。我有一个一致的交付格式,保存内容类型。

最佳答案

可以查看 Request.Browser 中的属性并以这种方式嗅出 IE,并以这种方式返回正确的 View ,尽管这很容易出现问题。这不是最佳选择,因为 IE 可能将来会支持它。

public ActionResult MyAction() {
  if (this.Request.Browser.Browser == "IE") {
    return View("NonSVG");
  } else {
    return View("SVG");
  }
}

值得深入研究的可能是这个 page on Codeplex .他们在 Browser 上定义了一个名为 AcceptsImageSVG 的属性,但它看起来像是面向移动浏览器的,不知道它是否可以用于您的情况。

关于asp.net-mvc - ASP.NET MVC : How do I send "text/xml" to all browsers but IE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1359266/

相关文章:

java - 从 XML 到 Java 的字符编码

php - Facebook 钓鱼检测

javascript - 将选择框选项值设置为对象的代码

unit-testing - 通过 Wiremock stub 获取请求会引发错误

javascript - ASP.Net MVC - 如何在没有 bundle 的情况下缩小 JavaScript(内联/外部文件)

javascript - Ajax响应: Map JSON to HTML

asp.net-mvc - 在 TDD 和 DDD 中,您如何处理假货中的只读属性?

css - 使用 CSS 进行表单布局

java - XHTML 模式下的 Struts 1 可以有 2 个表单提交到同一操作吗?

c# - 无法创建接口(interface)的实例 (PagedList)