3

C#.NET MVC4 アプリケーションがあります。これには、10 進数のプロパティを持つエンティティがあります (接続された MSSQL データベース内のどこかに):

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:.}")]
public decimal Fines { get; set; }

そして、私はそれを次のように表示します

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

値1、2、3、...で保存し、編集のためにレコードを開くと、テキスト入力値が保存された値に設定され、すべて正常に機能します。ただし、値が 0 の場合 (データベースに保存されますが)、テキスト ボックスに "0" 文字列として表示されず、代わりに空の文字列 "" として表示されます。これは必須フィールドであるため、検証エラーが発生します (および0 が有効な値です)。

私は何を間違っていますか?

4

1 に答える 1

2

あなたのフォーマット文字列は少し奇妙です..どのフォーマットにしようとしているのかわかりません。これを試して:

DataFormatString = "{0}"

または、通貨としてフォーマットする場合は、

DataFormatString = "{0:C}"

注:これをテストしました:

string.Format("{0:.}", (decimal)0)

空の文字列を返します。

標準およびカスタムの数値書式文字列については、msdn のページを参照してください。

于 2013-08-27T06:01:59.087 に答える