【发布时间】:2011-03-25 03:38:23
【问题描述】:
我正在使用 Razor 运行 MVC3,并注意到在编辑模式下十进制值被截断为 2 位小数。我设法通过使用显示格式注释我的属性来解决它。这似乎不是一个很好的解决方案,因为我必须记住为我生成的每个新视图(或更新我的模板)执行此操作。
我检查了我们的服务返回给控制器的值,它在 1.144 处是正确的,但是当绑定到视图时,它在 TextBox 中显示为 1.14
ViewModel 属性
[Required]
[Display(Name = "Unit Price")]
public decimal UnitPrice { get; set; }
.cshtml代码
@Html.LabelFor(model => model.UnitPrice)
@Html.EditorFor(model => model.UnitPrice)
@Html.ValidationMessageFor(model => model.UnitPrice)
如果我用以下内容装饰该属性,那么它可以工作。
[DisplayFormat(
ApplyFormatInEditMode = true,
DataFormatString = "{0:0.00###########################}",
NullDisplayText = "")]
有什么想法吗?
【问题讨论】:
-
由于
decimal经常用在金融相关的场景中,可能MVC在这里为了自己的利益而试图变得过于聪明。 -
这不是 MVC 做的。您在某处有自己截断的小数模板吗?
标签: asp.net-mvc asp.net-mvc-3 razor