c# - 来自数据库的 MVC 5 中的动态货币

标签 c# asp.net-mvc razor asp.net-mvc-5

我当前存储特定供应商货币的模型如下所示,其中 VendorCurrency 值类似于“en-US”或“en-CA”等。

目前,我在 Web.Config 中使用标签,该标签在全局范围内设置默认货币,但使网站支持多种货币的要求已经出现。

是否有一种简单的方法可以使用该模型来确定在 View 中即时使用哪种货币?

供应商:

public string VendorID { get; set; }

[Required]
[StringLength(100)]
[Display(Name = "Vendor Name")]
public string VendorName { get; set; }

[StringLength(50)]
public string VendorCurrency { get; set; }

发票:

public string Invoice_Number { get; set; }

public int VendorID {get;set;}

[DataType(DataType.Currency)]
public decimal? Invoice_Amount { get; set; }

最佳答案

在返回 View 之前,您需要在 Controller 中设置 Thread.CurrentThread.CurrentCulture:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-Us");

重要警告:

此设置将持续超出您的 View 执行和操作执行。它将渗透到 future 的行动执行中。

此外,许多编码人员在解析/打印数字时没有正确指定文化,如果您有这样的代码,像这样设置 CurrentCulture 会巧妙地对其造成严重破坏。

关于c# - 来自数据库的 MVC 5 中的动态货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49623108/

相关文章:

c# - Outlook 安全提示自动批准

c# - 使用 Razor/MVC3 将 AssemblyVersion 放入网页时出现问题

c# - 如何使用 StreamReader 读取非常大的文本文件?

c# - C# 中的接口(interface)是否可能出现菱形问题?

c# - MVC 助手扩展问题

asp.net-mvc - 在 docker 中与 .net core 建立 DB2 连接时无法加载 DLL 'libdb2.so'

c# - 在 ASP.NET MVC 中过滤其他页面中的数据

.net - "Operation could destabilize the runtime"尝试从 MVC3 升级到 MVC4 时

c# - 如何在 C# 中更新数据源

asp.net-mvc - MVC3 - RenderSection 内的 RenderPartial 不起作用