1

私はこれdecimalを設定しています:

[Required(ErrorMessage = "Please tell us your income")]
[Display(Name = "How much do you earn from all the income types you selected above?")]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString = "{0:c}")]
public decimal IndivdualIncome { get; set; }

私は[Serializable]自分のモデルで使用しています。ViewModel を使用して、これをビューに取り込みます。また、マルチステップ ウィザードを使用します。

このタイプの入力 (decimal値をキャプチャするため) のステップに到達すると、テキスト ボックスが空になり、「1000」と入力できます。これは予期される動作です。ただし、ウィザードで [次へ] をクリックすると、次のステップで同様のテキスト ボックスが表示されるとします (これも空白です。これを「SpouseIncome」と呼びます)。値を入力しないと、次のようになります。

  1. 「戻る」をクリックすると、「個人収入」テキストボックスに値が「1000.00」と表示されます。と
  2. 次に「次へ」をクリックすると、「SpouseIncome」(空白のままにしました) に「0.00」が表示されます。

それは私の使用decimalですか、それともおそらく私が使用している属性ですか?

空白(「0.00」なし)として表示する方法、または値が以前に入力された場合は「.00」を削除する方法についてのヘルプは大歓迎です。

4

2 に答える 2

1

現在使用している通貨形式ではなく、一般的な数値形式である"{0:N}"数値形式またはを使用することをお勧めします。"{0:g}""{0:c}"

または、カスタム番号の書式設定を、探しているものに非常に具体的にすることを検討することもできます。このような{0:0,0}千の区切り文字は、1,500になります。

文字列形式とカスタム数値形式の詳細については、こちらをご覧ください。

お役に立てれば。

于 2012-08-13T15:20:52.883 に答える
0

に変更[DisplayFormat(DataFormatString = "{0:c}")]すると機能する[DisplayFormat(DataFormatString = "{0:N0}")]はずです

于 2012-08-13T14:53:39.933 に答える