在新的ASP.NET网络API中,基于语言(Accept-Language标头)支持内容协商的最佳方法是什么?
新API有一种很好的方式来支持媒体类型的内容协商(参见here),但我找不到基于语言标题的内容否定的指针。
由于
答案 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>