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

How to create custom DisplayFormat for Decimal property in mvc?

我有一个 属性 小数类型的网格 -

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

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

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

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

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

public int UnitsDecimals { get; set; }

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

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

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

您可以详细说明 PriceNumberFormatString getter setter 用于来自数据源的十进制输入的不同值..

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