当我在向导上回击或下一个时,TextBox显示“0.00”或带有两位小数的值

时间:2012-08-13 14:41:59

标签: asp.net-mvc-3

我已设置此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. 我点击“返回”,然后“IndividualIncome”文本框将值显示为“1000.00”;和
  2. 如果我点击“下一步”,“SpouseIncome”(我留空)现在显示“0.00”。
  3. 是我使用decimal,还是使用我正在使用的属性?

    任何有关如何将其显示为空白(无“0.00”)或取出“.00”的任何帮助,如果之前输入的值,我们非常感谢。

2 个答案:

答案 0 :(得分:1)

您可能希望使用数字格式"{0:N}""{0:g}",这是一般数字格式,而不是您当前使用的货币格式"{0:c}"

或者您可能希望将自定义数字格式设置为对您要查找的内容非常具体。 像{0:0,0}这样的千位分隔符给你1,500个。

有关字符串格式和自定义数字格式here的更多信息。

希望这有帮助。

答案 1 :(得分:0)

[DisplayFormat(DataFormatString = "{0:c}")]更改为[DisplayFormat(DataFormatString = "{0:N0}")]应该有效