3

我有一个 C#.NET MVC4 应用程序。它有一个具有小数属性的实体(在连接的 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 回答