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