【问题标题】:content negotiation based on language in asp.net web.apiasp.net web.api中基于语言的内容协商
【发布时间】:2013-11-06 16:58:00
【问题描述】:

在新的 ASP.NET Web api 中支持基于语言(Accept-Language 标头)的内容协商的最佳方式是什么?

新 API 提供了一种支持按媒体类型进行内容协商的好方法(请参阅 here),但我找不到关于如何根据语言标头进行内容协商的指针。

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api


    【解决方案1】:

    您可以直接拨打FormatterSelector 帮助它知道您想要它做什么。 @AlexanderZeitler 指出,HttpMessageHandler 可能最适合在站点级别执行此操作。您可以在WebApiContrib 中看到使用FormatterSelector 的简单形式。

    希望这将成为未来版本中的新扩展点。

    【讨论】:

      【解决方案2】:

      您可以使用 MessageHandler 来检查标头并更改接受标头以匹配您的自定义格式化程序可以协商的类型。

      【讨论】:

        【解决方案3】:

        如果您在 web.config 的全球化元素中将 set UICulture 和 Culture 设置为 auto,ASP.Net 将根据 Accept-Language 标头自动设置 CurrentThread.CurrentUICulture 和 CurrentThread.CurrentCulture。

          <system.web>
            <globalization uiCulture="auto" culture="auto"/>
          </system.web>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-07
          • 2014-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-13
          相关资源
          最近更新 更多