如何在mvc中为Decimal属性创建自定义DisplayFormat?

时间:2017-08-01 12:33:16

标签: asp.net-mvc customization html-helper

我有一个十进制类型的属性 -

[DisplayFormat(DataFormatString = "{0:0.000000}", ApplyFormatInEditMode = true)]
public decimal? UnitPrice { get; set; } 

我希望[DisplayFormat可以自定义接受不同行的不同值,例如 -

第1行的UnitPrice只显示2位小数     {0:0.00}

第2行的UnitPrice~显示4位小数 -     {0:0.0000}

十进制之后的值来自数据库,我将它们存储在模型中作为另一个属性,如 -

public int UnitsDecimals { get; set; }

我正在使用编辑器&显示模板已经。我应该创建自定义htmlhelper吗?如果是,我如何将UnitsDecimal的值传递给自定义助手?

1 个答案:

答案 0 :(得分:0)

您可以在视图模型中添加其他属性以指示数据来源。

      public class ViewModel {
        public decimal? UnitPrice { get; set; }  
        //This Changes as per source 
        public string  PriceNumberFormatString{get;set;}
       }

您可以为来自数据源的不同十进制输入值设置精细的PriceNumberFormatString getter setter。

然后在View中,您可以使用PriceNumberFormatString的值来操作UnitPrice的视图。操作取决于您的UI库。