ASP.NET MVC Core,如何将模型外部的值呈现为某种数据类型,如货币



我有一些变量不属于模型属性。 例如:我的模型确实有一个生成decimal列表的函数。

List<decimal> CreateValues(); 

我想把它呈现为货币。

    @{
        var vals = Model.CreateValues();
    }
    @for (var i = 0; i < vals .Count ; i++)
    {
        Year @i: @val[i]
    }

这样,它就呈现为十进制。

如何在不使用.ToString("C")的情况下告诉渲染引擎这些值应该呈现为货币?

我认为没有理由,为什么你不应该使用.ToString('C').

另一种方法是使用显示模板Decimal.cshtml @Html.DisplayFor(e => val[i])


您还可以为整个列表创建显示模板。但是你需要重构你的视图模型:

[UiHint("DecimalYearList")]
List<decimal> MyList { get; set; }

在你的~Views/DisplayTemplates/DecimalYearList.cshtml

@model List<decimal>
@for (var i = 0; i < Model.Count; i++)
{
    Year @i: @Model[i].ToString("C")
}

在您看来,这就像打电话一样简单

@Html.DisplayFor(e => e.MyList)

尝试@string.Format("{0:C}", val);

最新更新