ViewModel 中的 Thread.CurrentThread.CurrentUICulture 与 Accept-Language

2024-03-30

全球化:提出这个问题的原因是为了更好地理解如何Thread.CurrentThread.CurrentUICulture与 ViewModel 和控制器中的属性和错误消息相关的工作

我已经设置了我的项目并覆盖OnActionExecuting我的控制器的方法我已经根据存储在 cookie 中的用户选择设置了语言。

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);

    HttpCookie cookie = Request.Cookies["lang"];

    string lang = cookie != null ? cookie.Value : "en-US";
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
}

现在,在此之后,检查Accept-Language浏览器发送的 http 请求中的标头,用户的更改没有反映出来 - 值仍然是“en-US”。这让我觉得这两者并不依赖。

我还将代码移至 Global.asax 但效果相同。从昨天就开始了

The Thread.CurrentThread.CurrentUICulture设置影响页面上的文本,但不影响 ViewModel 注释中的错误消息或属性。但当Accept-Language从浏览器更改,然后从正确的资源文件中选取错误消息。

  • 是否可以操纵Accept-Language标题? - 这似乎是只读的
  • 主要问题: 怎么样Thread.CurrentThread.CurrentUICulture作品?这似乎是互联网上大多数示例/文章/博客等使用的内容。

为了使用 ASP.NET MVC 在公共站点上实现全球化,我建议如下:

  • 使用 URL(的片段)来确定文化,不是饼干。否则,将无法链接到预定义语言的页面,并且搜索引擎将无法索引您的内容。
  • 浏览器首选项可用于redirect首次访问时使用适当的语言(例如,调用主页时without任何 URL 片段:对于浏览器中具有 en-US 首选项的用户,www.mysite.com 会重定向到 www.mysite.com/en-US/)
  • OnActionExecuting is too late用于文化初始化。我推荐阅读亚历克斯·阿达米扬的文章 http://adamyan.blogspot.ch/2010/07/addition-to-aspnet-mvc-localization.html关于 ASP.NET MVC 中的本地化,并实现自定义路由处理程序初始化 UiCulture/Culture。这也可以与模型绑定一起正常工作(例如,在视图模型类上使用资源和属性时)。

至于你的其他问题:修改Accept-Language标头,因为客户端将它们发送到服务器。即使您可以修改它们,客户也永远不会知道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ViewModel 中的 Thread.CurrentThread.CurrentUICulture 与 Accept-Language 的相关文章

  • asp.net MVC 1.0和2.0货币模型绑定

    我想创建模型绑定功能 以便用户可以输入 等等 用于绑定到我的 ViewModel 的双精度值的货币值 我能够在 MVC 1 0 中通过创建自定义模型绑定器来执行此操作 但是自从升级到 MVC 2 0 后 此功能不再起作用 有谁有任何想法或更
  • 如何在您的网站中连接两个人

    有一款名为 Verbosity 的游戏 这是一款有目的的游戏 位于此链接上www gwap com 在游戏中 他们随机连接两个玩家互相玩 游戏是玩家1应该向他的搭档 玩家2 描述一个单词 而玩家2应该猜测这个单词 我正在尝试建立一个网站来执
  • 在 ASP.NET MVC 中使用或继承 DisplayAttribute 创建自定义显示属性

    我想用DisplayAttribute with Name财产 问题是班级是sealed我无法继承它来覆盖某些方法 为什么我想要这个 我想传递一些代码以便将字符串转换为Name财产 并为语言添加一个属性 就像是 MyDisplay Code
  • 如何使用 WebAPI 处理图像

    问题 将图像发布 获取到我的服务有哪些不同的方法 我想我可以在 JSON 中使用 Base 64 文本 也可以保持原生二进制形式 我的理解是 通过将图像转换为文本 包大小会显着增加 如果我发送图像 从 Web 表单 从本机客户端 从另一个服
  • .Net MVC 4 项目失败,并出现事件日志错误“模块 DLL C:\WINDOWS\system32\inetsrv\aspnetcore.dll 无法加载。数据是错误。”

    这不是 DotNetCore 项目 它是 MVC 4 项目 并且应用程序池已正确配置为使用 dotnet CLR v4 但在更新到新版本的 Windows 10 后 无论是内部版本还是新的周年更新 启动应用程序失败 事件日志显示以下错误 模
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 通过 CultureInfo 格式化字符串

    我想显示英镑符号和格式 0 00 即 45 00 4 10 我正在使用以下语句 td style text align center td 但它不起作用 问题是什么 谁能帮我 Use the Currency http msdn micro
  • 回发 Asp.Net 上的动态用户控件

    我创建了一个项目 user control 它有一个文本框 按钮等 它将有意收集用户想要的项目总数 我在 page load 上动态创建了几个 user control 实例 如果您单击项目数量的添加按钮 它将添加到会话变量中 但是 当用户
  • 为什么这条路线不匹配

    我在获取匹配路线时遇到一些问题 我使用 base 32 编码的 int 作为 Web 应用程序中幻灯片的短链接 每个幻灯片有 5 个不同的版本 我使用首字母来区分每个版本 路由始终匹配 除非 Base 32 编码 int 的第一个字符与指定
  • ASP.NET MVC3 IIS7.5:Cache-Control maxage 始终为 0(不利于客户端缓存)

    我正在使用 Fiddler 测试我的网站 并注意到网络服务器总是返回 Cache Control private s maxage 0 用于动态内容 MVC 操作 这可以防止页面在客户端缓存 不知道是MVC还是IIS的问题 我该如何修复它
  • 如何在VS2010中获取T4来迭代类的属性

    我使用的是 Visual Studio 2010 并且安装了有形的 T4EditorPlusModellingTools 我只是在玩T4 以前从未接触过它 我想做的是查看项目中的一个类 并写出每个属性 谁能给我关于如何构建 tt 文件的绝对
  • MVC4 输入字段占位符

    Does MVC4默认支持placeholders对于生成的输入字段 我没有找到任何东西 所以我正在尝试实现我自己的 但不幸的是Prompt E Mail 没有传递到ViewData ModelMetadata Watermark同时产生控
  • 如何构造控制器来对多个条件进行排序 asp.net mvc

    设置控制器按许多 可能为空 标准排序的最佳方法是什么 举例来说 我正在建立一个销售汽车的网站 我的 CarController 有一个函数 Index 它将汽车的 IList 返回到视图 并且每辆车的详细信息都用部分视图呈现 构建这个结构的
  • 与简单的文件请求相比,您预计 Web 服务请求的响应时间开销是多少?

    我正在开发一个 asp net Web 服务应用程序 以向使用 jQuery ajax 发出请求的小部件提供 json 格式的数据 我一直在使用 FireBug Net 视图来检查数据请求需要多长时间 在我最初的原型中 我只是请求静态 js
  • 如何强制控制器/操作使用 JsonValueProvider

    再会 我正在使用 ASP NET MVC 3 其中JsonValueProvider http haacked com archive 2010 04 15 sending json to an asp net mvc action met
  • .net dropdownlist对齐文本

    我正在尝试将 net 下拉列表中的文本向右对齐 使用 CssClass 我可以在 Firefox 中将文本向右对齐 IE 不会将文本右对齐 而是左对齐 我读到 IE 6 不支持这个 这是真的 我使用的是 IE7 但我的大多数用户将使用 IE
  • 带有服务总线的 SignalR Azure 云服务

    我使用 SignalR 构建了一个简单的聊天应用程序那里有教程 http www asp net signalr overview getting started tutorial getting started with signalr
  • 为多语言 ASP.NET WebAPI 应用程序设置 CurrentCulture 的最佳位置

    基于这个问题 为多语言 ASP NET MVC Web 应用程序设置 CurrentCulture 的最佳位置 https stackoverflow com questions 8226514 best place to set curr
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM

随机推荐

  • 使用 JavaScript 将当前日期放入 PDF 表单的文本字段中

    我喜欢创建一个 PDF 打印时包含打印的日期和时间 因为实际更改 PDF 内容需要 PDF 编辑器 所以我认为使用 PDF 表单 即包含可填写表单的 PDF 其中一个文本字段会在打印 PDF 时自动更新为当前日期和时间 PDF 的实际创建不
  • 仅 Grep 第一个匹配项并停止

    我正在使用 grep 递归搜索目录 并使用以下参数希望只返回第一个匹配项 不幸的是 它返回了不止一个 事实上 我上次查看时返回了两个 似乎我有太多的争论 尤其是没有得到想要的结果 grep o a m 1 h r Pulsanti Oper
  • IO 的“最佳”ExecutionContext

    我的 Scala 代码中有一些同步调用 我将它们包装在阻塞 上下文中 然后包装在 Future Future blocking syncCall 中 但我不知道要使用哪种类型的 ExecutionContext 我知道可能有很多可能性 并且
  • 如何更正此错误:未找到数据源名称且未指定默认驱动程序

    我有一个在 Windows 服务器上运行的网站 它运行得很好 我尝试在本地主机中进行复制 但收到错误 Warning odbc connect function odbc connect SQL error Microsoft ODBC D
  • 通过网络发送的数据的字符串压缩/解压缩[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 中的字符串压缩方法 可以在将数据字符串写入网络套接字之前对其运行 我对任何类型的压缩都相当陌生 因此我在这里寻求一些建议
  • GitHub 中的发布到底是什么?

    究竟是什么 它是用来做什么的 使用范围有多广泛 通常如何使用 来自官方GitHub https help github com articles about releases Releases are GitHub s打包并向用户提供软件的
  • 替换每列的最大值

    我有一个矩阵 我想用 1 替换每列的最大值 我怎样才能在R中做到这一点 我试过 set seed 14 mat lt matrix sample 10 20 replace TRUE nr 5 apply mat 2 which max 1
  • 为什么 false == "false" 是假的?

    我仍在学习 javaScript 的基础知识 我不明白为什么会发生这种情况 有类型强制false false 将转换为 false false true or false false true So why false false 是假的吗
  • JQMIGRATE:jQuery.fn.attr('selected') 可以使用属性而不是属性

    operatordelivery attr checked true 您好 我目前正在将 jQuery 版本迁移到 jQuery 2 1 1 我可以在控制台中看到警告JQMIGRATE jQuery fn attr selected may
  • 使用 Jsoup 提取 Span 标签数据

    我正在尝试使用 Jsoup 提取 html 中的特定内容 下面是示例 html 内容 div class shop section line bmargin10 tmargin10 div class price section fksk
  • Android 无法禁用剪切复制粘贴

    我无法禁用复制粘贴选项 在三星 Galaxy S2 上 如果我单击编辑文本 则会出现一个箭头 单击该箭头时 所有选项都会出现 onCreateContextMenu 尚未被调用 在 onUserInteration 中 我只是使用 setT
  • 如何在 gtk2hs 中的事件处理程序之间传递状态

    我正在尝试制作一个玩具应用程序 只是为了了解如何在 Haskell 中编写事件驱动程序 我想做的是在画布上画一条线 每次按下按键时该线都会向前移动 所以它有点像文本编辑器中的原始光标 我的问题是我无法找出计算用户按键次数的最佳方法 显然我不
  • Git 合并,不包括从一个分支到另一个分支的提交

    在开发过程中 我经常需要提交和推送 中间 提交 即提交代码不可编译或正在更改某些内容等 我不想进行此类提交 但这是轻松继续我的工作所必需的从办公室到家里 有时其他开发人员可以为他们提供开始工作的基础 我以为我已经找到了解决这个问题的方法 我
  • SQL 查询获取给定邮政编码 20 英里半径内的所有邮政编码(地址)

    我的查询仅匹配彼此相同的邮政编码 我需要一个查询 可以返回给定邮政编码 20 英里半径内的所有邮政编码 DECLARE cZip VARCHAR 5 SET cZip 63026 DECLARE dMin DECIMAL 20 32186
  • 如何编写参数化sql查询来防止SQL注入?

    当我尝试搜索带有主题标签的术语时 我最初发现这是一个问题 结果发现它是 SQL 中的注释分隔符 搜索没有返回任何结果 因为它忽略了主题标签后面的 term 所以现在我很难找到转义用户输入的正确方法 在我看来 这既可以解决主题标签问题 也可以
  • 需要对这个反复出现的问题有一些了解,ANR keyDispatchingTimedOut

    我有一个应用程序在一个特定组件中不断出现 ANR 但我无法弄清楚是什么占用了 cpu 时间 最近我遇到了两种 ANR 一种是本机的 另一种是等待的 DALVIK THREADS main prio 5 tid 1 NATIVE group
  • 如何获取 Mesos Agents Framework 执行器内存

    在 Mesos Web UI 内部 我可以在表中查看 Spark 执行器的内存使用情况 Agents gt Framework gt Executors 有一个表列出了我的 Spark 驱动程序的所有执行程序 它们的内存使用情况在列中指示M
  • 如何用Java读取PGM图像?

    我觉得我在这里错过了一些简单的东西 像往常一样 我正在尝试使用 Java 读取 PGM 图像 Matlab 做得很好 在 Matlab 中输出图像像素 例如 一个小的 32x32 图像 给我这样的结果 1 0 11 49 94 118 11
  • 如何在 scala 中生成案例类参数的值

    我有一个包含 250 个字段的案例类 case class Data field1 String field2 Int 有没有办法使用 scala check 为其参数生成值 我看过的不相关问题 如何使用宏为 Scala 案例类中的每个字段
  • ViewModel 中的 Thread.CurrentThread.CurrentUICulture 与 Accept-Language

    全球化 提出这个问题的原因是为了更好地理解如何Thread CurrentThread CurrentUICulture与 ViewModel 和控制器中的属性和错误消息相关的工作 我已经设置了我的项目并覆盖OnActionExecutin