【发布时间】:2012-03-19 12:02:44
【问题描述】:
我的模型中有以下字段:
public Decimal AnnualSalary { get; set; }
在我看来显示为:
@Html.EditorFor(model => model.SelectedPerson.AnnualSalary)
这给了我一个小数点后 2 位的数据格式。我还想要一个逗号千位分隔符。所以我在 Shared | 中创建了一个名为 Decimal.cshtml 的文件。 Editor Templates 文件夹包含以下内容:
@model Decimal
@Html.TextBox("", Model.ToString("#,##0.00"))
这为我提供了我想要在编辑器中显示现有数据的内容。但是,当我去保存修改后的数据时,它失败了。如果我删除十进制编辑器模板,那么数据保存得很好。
我还注意到,如果没有新的编辑器模板,如果我在此文本框中输入逗号,我不会收到客户端验证错误,但是我的数据仍然没有保存。
好像客户端验证很乐意接受千位分隔符,但是当 EF 代码第一次尝试保存数据时,服务器端的某些东西不喜欢千位分隔符。
这似乎是一个相当普遍的要求,但我很难在任何地方找到明确的答案。
【问题讨论】:
标签: asp.net-mvc ef-code-first decimal mvc-editor-templates