如何通过 Razor 视图在 MVC 的同一字段中将 1.250 显示为 1.25,将 1.256 显示为 1.256

How to display 1.250 as 1.25, and 1.256 as 1.256 in the same field in MVC, via a Razor View

我相信这很简单。

我正在使用 MVC3 ASP.NET 4.5、C#、Razor、SQL Server 200、EF6

我有一个定义为十进制 18,3 的 DB 列。如果我的值为 1.256,我意识到这将通过 Razor 视图显示为 1.256。但是,如果我的值为 1.250,那么我的客户表示希望将其显示为 1.25 而不是 1.250。这可能吗?如果可能的话如何?

我的代码通常是:

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

提前致谢。

您可以使用 General ("G") Format Specifier 根据需要格式化您的 decimal 值。 "G29" 重载正是您所需要的。

但是您不能将 .ToStringDisplayFor 助手一起使用。所以我建议在你的 ViewModel 中添加额外的正确格式的字段作为 answered here.

所以你的最终解决方案可以是这样的:

ViewModel中:

public string FormattedDecimalValue1
{
    get
    {
        return this.DecimalValue1.ToString("G29");
    }
}

View 上:

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