在新的ASP.NET web api中支持基于语言(Accept-Language头文件)的内容协商的最佳方式是什么?基于asp.net语言的内容协商web.api
新的API有一个很好的方式来支持媒体类型的内容协商(请参阅here),但是我找不到指示我们如何根据语言标题做内容否定。
感谢
在新的ASP.NET web api中支持基于语言(Accept-Language头文件)的内容协商的最佳方式是什么?基于asp.net语言的内容协商web.api
新的API有一个很好的方式来支持媒体类型的内容协商(请参阅here),但是我找不到指示我们如何根据语言标题做内容否定。
感谢
你可以使用的MessageHandler检查页眉和改变接受头匹配一个类型的自定义格式可以协商。
您可以直接致电FormatterSelector
以帮助它知道您希望它做什么。正如@AlexanderZeitler指出的那样,HttpMessageHandler
可能最适合在网站级别执行此操作。您可以在WebApiContrib中看到FormatterSelector
的简单形式。
希望这将成为未来版本中的一个新的可扩展性点。
如果将set UICulture和Culture设置为在web.config中的全球化元素中自动运行,则ASP.Net将根据Accept-Language头自动设置CurrentThread.CurrentUICulture和CurrentThread.CurrentCulture。
<system.web>
<globalization uiCulture="auto" culture="auto"/>
</system.web>