2012-03-26 28 views
3

在新的ASP.NET web api中支持基於語言(Accept-Language頭文件)的內容協商的最佳方式是什麼?基於asp.net語言的內容協商web.api

新的API有一個很好的方式來支持媒體類型的內容協商(請參閱here),但是我找不到指示我們如何根據語言標題做內容否定。

感謝

回答

0

你可以使用的MessageHandler檢查頁眉和改變接受頭匹配一個類型的自定義格式可以協商。

1

您可以直接致電FormatterSelector以幫助它知道您希望它做什麼。正如@AlexanderZeitler指出的那樣,HttpMessageHandler可能最適合在網站級別執行此操作。您可以在WebApiContrib中看到FormatterSelector的簡單形式。

希望這將成爲未來版本中的一個新的可擴展性點。

0

如果將set UICulture和Culture設置爲在web.config中的全球化元素中自動運行,則ASP.Net將根據Accept-Language頭自動設置CurrentThread.CurrentUICulture和CurrentThread.CurrentCulture。

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