【问题标题】:Changing the ASP.NET Culture based off of a dynamic value根据动态值更改 ASP.NET 文化
【发布时间】:2011-03-17 12:28:12
【问题描述】:

我有一个跟踪财务数据的网络应用程序。我想有一个选项,用户可以通过下拉菜单编辑他们的货币。不同的货币类型将保存在数据库中,然后用户可以选择他们希望使用的货币。我能看到的最简单的方法是检查货币价值并动态更改文化以匹配货币,因此我可以继续使用 string str = String.Format("{0:C}", revenue); 格式。我对其他建议持开放态度,但这对我来说似乎是最合乎逻辑的。我该如何处理?

【问题讨论】:

  • 我认为是正确的,你可以使用 Page.InitializeCulture 来达到这个目的。或者 Global.asax 连接 Page.PreInit 并在那里做。

标签: asp.net string currency


【解决方案1】:

您可能可以通过几种方式做到这一点。

  1. 传入预期的文化作为String.Format 调用的第一个参数,例如

    string str = string.Format(CultureInfo.CurrentCulture, "{0:C}", 收入);

  2. 更改处理请求的线程的默认文化:

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");

第二个选项需要在每个请求开始时完成,并允许您在格式和解析中自动使用该文化,但您需要注意确保处理用户响应的任何代码根据默认文化(您将替换)这样做。

【讨论】:

    【解决方案2】:

    我发现最简单的方法是创建一个继承 Page 的基类。然后是对 InitializeCulture() 函数的简单覆盖。

    感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多