c# - 如何自动附加到十进制数据类型 DisplayFormatAttribute

标签 c# asp.net-mvc entity-framework

我正在使用 Entity Framework v6.1.3(代码优先)和 ASP.NET MVC v5.2.3

我知道我可以像这样在十进制数据类型中使用DisplayFormatAttribute

[DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:N2}")]
public decimal Foo { get; set; }

现在我需要的是将此属性自动应用于每个实体中的每个小数

这可能吗?

我有一个类似的要求,即每个小数点的精度必须为 20,8,我使用这段代码解决了这个问题

public class EntitiesContext : DbContext
{
   protected override void OnModelCreating(DbModelBuilder modelBuilder)
   {
      // Set all decimals data types by default as Decimal(20, 8)
      modelBuilder.Properties<decimal>().Configure(c => c.HasPrecision(20, 8));
   }
}

所以我想知道是否可以自动分配DisplayFormatAttribute

最佳答案

您可以创建小数类型的显示模板并将其放入Views/Shared/DisplayTemplates 文件夹:

@model System.Decimal
<span>  
    @Model.ToString("n2")
</span>

在 View 中只需使用 DisplayForDisplayForModel 方法:

@Model.DisplayFor(m => m.Foo)

进一步阅读:What are Display and Editor Templates?

关于c# - 如何自动附加到十进制数据类型 DisplayFormatAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42929241/

相关文章:

C#构造函数

c# - silverlight 退出时调用 webservice

c# - 为什么有多个 DbContext 类?

asp.net-mvc - 部分 View 未在其包含的主视图中呈现(而是在其自己的页面中呈现)?

asp.net-mvc - ASP.NET MVC + Entity Framework -如何处理DTO和ViewModel的

c# - 如何在 Silverlight 中获取路径的 X 和 Y 位置?

c# - 如何使用 C# 和 .NET 对 Zebra 打印机的 RFID 标签进行编码?

asp.net-mvc - 使用 Kendo 调度程序的问题

c# - 我可以在 Entity Framework 的 Where 方法中使用自定义委托(delegate)方法吗?

c# - EF - context.Set<t> 与 context.T