将小数格式化为百分比以在视图中显示?

时间:2013-10-17 06:13:44

标签: c# asp.net-mvc razor number-formatting

在MVC Razor视图中,十进制字段需要以百分比 BUT 显示,不带百分号。例如22.5

我知道它可以来自模型,它将类似于:

    [AutoMapIgnore]
    [DisplayFormat(DataFormatString = "{0:F1}")]
    public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } }

但是根本没有任何效果,目前显示为:

目前它显示为3.000002.50000

你能指导吗。

我高度赞赏你的指导和帮助。

修改

如果我在视图中进行格式设置,则显示为3.02.5

@row.OffPeakMarginPercent.ToString("0.0")

3 个答案:

答案 0 :(得分:18)

更改

[DisplayFormat(DataFormatString = "{0:F1}")]

[DisplayFormat(DataFormatString = "{0:P2}")]

并从getter中删除* 100

所述here格式的十进制百分比为P而非F

答案 1 :(得分:1)

使用

[RegularExpression(@"^\d+(\.\d)?$", ErrorMessage = "Only one decimal point value allowed")]
[Range( 0.1,100)]
public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } }

答案 2 :(得分:0)

在MVC 5中,如果只想在双精度值后显示两个零,则可以更改索引视图

代码Befor

  @Html.DisplayFor(modelItem => item.PRSPrice)

之后的代码

 @Convert.ToDouble(item.PRSPrice.Value).ToString("0.00")

谢谢