【发布时间】:2018-04-03 05:51:09
【问题描述】:
我当前存储特定供应商货币的模型如下所示,其中 VendorCurrency 值将类似于“en-US”或“en-CA”等。
目前我正在使用 Web.Config 中的标签,该标签在全球范围内设置默认货币,但已经出现了使网站多币种的要求。
是否有一种简单的方法可以使用该模型来确定在视图中即时使用哪种货币?
供应商:
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; }
【问题讨论】:
-
您是否希望仅显示此值,或者您是否还想编辑用户文化中的值(在这种情况下,您需要自定义 ModelBinder 并且需要配置 @ 987654323@ 如果您还需要客户端验证)
-
这仅用于显示。用户将无法编辑。
-
如果是这种情况,一种解决方案是拥有一个(比如说)
string CurrencyFormat属性,您可以根据用户文化在 GET 方法中设置该属性 - 例如它可能是 "$# .00" 代表en-US,然后在视图中使用@Model.Invoice_Amount.ToString(Model.CurrencyFormat)。 -
谢谢!我将您的答案和 Cory 下面的答案结合起来,创建了一个扩展方法来确定检测到的文化。
标签: c# asp.net-mvc razor asp.net-mvc-5