繁体   English   中英

ViewModel上的数据驱动货币代码

[英]Data driven currency code on ViewModel

我正在ASP.Net MVC 5中工作。我具有以下ViewModel:

[Display(Name = "Shipping Cost")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:#.#}")]
public decimal ShippingCost { get; set; }
[Display(Name = "Shipping Currency")]
public Currency ShippingCurrency { get; set; }

ShippingCurrency是一个如下所示的枚举:

public enum Currency
{
    GBP,
    USD,
    CAD,
    AUD
}

当我查看ViewModel的详细信息时,我想查看其旁边带有相关货币符号的运输成本,但是我想从我的ViewModel而不是Razor视图中执行此操作。 因此,在“视图”中,我想看到:

200 GBP
180 USD
320 CAD

有没有一种方法可以通过ViewModel上的Data Attributes获得该格式?

因为属性是元数据,并且必须在编译时知道,所以不能使用Attribute进行操作。

相反,您可以在视图模型中包括一个只读属性以返回格式化的值,例如

public string FormattedAmount
{
    get { return string.Format("{0:#.#} {1}", ShippingCost, ShippingCurrency); }
}

并认为

<span>@Model.FormattedAmount</span>

另外,您也可以在视图中合并两个属性的值

<span>@DisplayFor(m => m.ShippingCost)</span><span>@Model.ShippingCurrency </span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM