モデルに次のフィールドがあります。
public Decimal AnnualSalary { get; set; }
私の見解では次のように表示されます:
@Html.EditorFor(model => model.SelectedPerson.AnnualSalary)
これにより、小数点以下2桁のデータ形式が得られます。カンマ千単位の区切り文字も必要です。そこで、Shared|にDecimal.cshtmlという名前のファイルを作成しました。以下を含むEditorTemplatesフォルダー:
@model Decimal
@Html.TextBox("", Model.ToString("#,##0.00"))
これにより、既存のデータのエディターで必要な表示が得られます。ただし、変更したデータを保存しようとすると失敗します。10進エディターテンプレートを削除すると、データは正常に保存されます。
また、新しいエディターテンプレートがないと、このテキストボックスにカンマを入力してもクライアント側の検証エラーは発生しませんが、データは保存されません。
クライアント側の検証が千単位の区切り文字を受け入れて非常に満足しているようですが、EFコードが最初にデータを保存しようとしたときのサーバー側の何かは、千単位の区切り文字を好みません。
これはかなり一般的な要件のようですが、どこでも決定的な答えを見つけるのに苦労しています。