MVC4,代码优先,C# 项目
当使用显式值或从表中填充货币字段时,TextBoxFor 会显示带有 2 个小数位的值。如果该字段是从另一个类中的货币字段填充的,它将显示 4 个小数位。
public class Class1
{
[Column(TypeName = "money")]
public decimal Field1 { get; set; }
}
public class Class2
{
[Column(TypeName = "money")]
public decimal Field1 { get; set; }
}
public class Table1
{
public int Id { get; set; } public decimal Value { get; set; }
}
场景一:
Class1.Field1 = 14.95M;
场景二:
Class2.Field1 = Table1.Value;
场景 3:
Class1.Field1 = Class2.Field1
看法
@Html.TextBoxFor(m => m.Class1.Field1, new { style = "width:70px;" })
对于场景 1 和 2,TextBoxFor 正确显示 2 个小数位,对于场景 3,它在编辑框中显示 4 个小数位。我需要使用 TextBoxFor 以便可以传递 html 属性。
Class2 的实例本身是根据 Class2 生成的表中的值预先填充的。我已经使用 SSMS 检查了所有内容 [表中的所有适用字段都是 (money, not null)] 并在调试中,找不到任何差异。
为什么 TextBoxFor 不正确地显示场景 3 的货币格式(我知道 SQL 以 4 位小数精度存储小数)?
更重要的是,如何让我的编辑框始终以 2 位小数显示货币值?