Razor 为什么';DataFormatString在我的MVC应用程序中工作吗?

Razor 为什么';DataFormatString在我的MVC应用程序中工作吗?,razor,linq-to-sql,data-annotations,Razor,Linq To Sql,Data Annotations,我有一个定义为十进制的数字字段。我试图将其显示为一个整数值 我的模型: [Column(CanBeNull = true, DbType = "numeric", Name = "VHCL_ODOMTR")] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:f0}", HtmlEncode = false, NullDisplayText = "")] [Display(Name = "Odomete

我有一个定义为十进制的数字字段。我试图将其显示为一个整数值

我的模型:

[Column(CanBeNull = true, DbType = "numeric", Name = "VHCL_ODOMTR")]
  [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:f0}", HtmlEncode = false, NullDisplayText = "")]
  [Display(Name = "Odometer")]
  public decimal? VehicleOdometer { get; set; }
我的剃刀:

@Html.TextBoxFor(model => model.VehicleOdometer)
我的输出总是一个带有一个小数点的文本框。我不能让它停止这样做。我尝试了{0:D},{0:#},并使用了大写字母F而不是小写字母。即使尝试“F9”也会显示1个小数,而不是9。似乎完全忽略了DataFormat属性。

这是因为设计用于模板化视图帮助程序(即
Html.EditorFor
Html.DisplayFor
)。因此,为了使其工作,您需要使用:

@Html.EditorFor(model => model.VehicleOdometer)

非常感谢。就在我认为自己正在搞清楚MVC的时候,我做了这样的事情,意识到我还有很多东西要学!