基于asp.net web.api语言的内容协商

时间:2012-03-26 07:28:00

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

在新的ASP.NET网络API中,基于语言(Accept-Language标头)支持内容协商的最佳方法是什么?

新API有一种很好的方式来支持媒体类型的内容协商(参见here),但我找不到基于语言标题的内容否定的指针。

由于

3 个答案:

答案 0 :(得分:1)

您可以直接致电FormatterSelector,以帮助它了解您的目标。 @AlexanderZeitler指出,HttpMessageHandler可能最适合在网站级别执行此操作。您可以在WebApiContrib中看到使用FormatterSelector的简单形式。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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