格式化货币值的更有效方法

时间:2019-01-30 18:31:05

标签: c# asp.net razor model-view-controller

我想在HTML页面中将decimal数字显示为美元货币。例如,将1209.27显示为 $ 1,209 27

我没有在模型中使用[DataType(DataType.Currency)],而是直接在视图中设置每个数字的格式:

@Html.Raw(Regex.Replace(Regex.Replace(String.Format("{0:C}", Model.Price), "(?<=\\.)([^.]*$)", "<sup>&nbsp;$1</sup>"), "\\.<sup>", "<sup>"))

是否有一种更有效的方法来实现这种格式,而不是一遍又一遍地重复这种格式?

2 个答案:

答案 0 :(得分:5)

您可以考虑编写Razor DisplayTemplate或custom html helper

答案 1 :(得分:0)

使用CSS设置样式。

<style type="text/css">
.price { font-weight: bold;}
.currency {}
.decimals { font-size: 0.6em; font-weight: normal; vertical-align: baseline; top: -0.4em; position: relative; }
</style>
This item costs 
<span class="price">
<span class="currency">$</span>5,310<span class="decimals">.79</span></span> Dollars.
在这里工作的小提琴: https://jsfiddle.net/a3vksgcu/1/

原始解决方案在这里: https://css-tricks.com/forums/topic/solved-a-more-interesting-price-display-using-css/