Asp.net mvc 4 是否可以覆盖客户端接受语言标头,以便子请求使用新语言?

Asp.net mvc 4 是否可以覆盖客户端接受语言标头,以便子请求使用新语言?,asp.net-mvc-4,globalization,http-accept-language,Asp.net Mvc 4,Globalization,Http Accept Language,我们的业务需求表明,用户应该能够在不更改浏览器或系统设置的情况下更改其语言首选项。我们的实现是一个简单的接口,要求他们选择一种语言。最初,我打算将他们的选择存储在cookie值中,然后检查它并设置UI区域性,但我想知道是否有更简单的方法 目前,我正在尝试是否可以接受他们的选择,然后在响应中设置accept语言,以便在后续请求中使用它。现在,我在响应中设置了accept language头,但下一个请求会用浏览器值(例如en-US,en;q=0.8”)覆盖它这可能吗?我该怎么做呢?我们也欢迎任何其

我们的业务需求表明,用户应该能够在不更改浏览器或系统设置的情况下更改其语言首选项。我们的实现是一个简单的接口,要求他们选择一种语言。最初,我打算将他们的选择存储在cookie值中,然后检查它并设置UI区域性,但我想知道是否有更简单的方法


目前,我正在尝试是否可以接受他们的选择,然后在响应中设置accept语言,以便在后续请求中使用它。现在,我在响应中设置了accept language头,但下一个请求会用浏览器值(例如en-US,en;q=0.8”)覆盖它这可能吗?我该怎么做呢?我们也欢迎任何其他实现此功能的想法。

是的,您可以覆盖
接受语言
HTTP头的效果。更确切地说,这样的头本身没有效果。如果服务器进行语言协商,它唯一的作用就是参与语言协商。您需要不要使用任何东西来覆盖它;只是不要使用它,或者以使其他设置覆盖它的方式使用它

使用cookie是常见的方法。这并不理想,但通常是实践中最好的方法。如果需要,您可以使用
接受语言
标题来确定语言选择菜单中的默认选项,但这比大多数人想象的要复杂。通常,标题指定一个语言或区域设置列表,其中包含“质量因素”,而不仅仅是一种语言


在HTTP响应中设置
Accept Language
没有意义,因为它只是一个请求头。

是的,您可以覆盖
Accept Language
HTTP头的效果。更确切地说,这样的头本身没有效果。如果服务器进行语言协商,它唯一的作用就是参与语言协商。Yo你不需要使用任何东西来覆盖它;只是不要使用它,或者以其他设置覆盖它的方式使用它

使用cookie是常见的方法。这并不理想,但通常是实践中最好的方法。如果需要,您可以使用
接受语言
标题来确定语言选择菜单中的默认选项,但这比大多数人想象的要复杂。通常,标题指定一个语言或区域设置列表,其中包含“质量因素”,而不仅仅是一种语言

在HTTP响应中设置
Accept Language
没有意义,因为它只是一个请求头