0

我有一个想用丹麦语运行的 MVC 网站。

基于这个线程,我得到了它的工作。

.Net MVC4 文化设置正确,但验证仍然是英文

但我也有一些地方想生成 JavaScript,这里我希望区域设置为英文,因为这是 JavaScript 中唯一有效的东西。

@Model.price

会给9,95

string.Format("{0:#.##}",Model.price)

也给出 9,95。

string.Format("{0:#,##}",Model.price)

会给10。

那么当站点是丹麦语时,使用 Razor 构建正确的“英语”JavaScript 的最佳实践是什么?

4

1 回答 1

1

您的问题是没有特定文化的 String.Format 仍将使用当前线程的文化来解析和转换为字符串。通过将页面的文化设置为丹麦语,您指定丹麦语也应用于字符串转换。

您可以通过将其作为第一个参数传递给String.Format来指定要使用的文化,例如:

string.Format(CultureInfo.InvariantCulture,"{0:#,##}",Model.price)

您可以在任何需要 IFormatProvider 参数的方法中传递区域性。String.Format 和几乎所有 ToString() 和 Parse() 方法都有接受此参数的重载。

每当您使用这种方法而不传递特定文化时,Resharper 之类的工具甚至会警告您可能出现的转换错误

顺便说一句,要使用的正确文化是CultureInfo.InvariantCulture,而不是英语,否则您最终可能会得到美国风格的日期等。

于 2013-10-31T14:26:26.947 回答