2013-03-26 176 views
4

我的模型有一个EditorFor,它绑定到数据库中的非空数字字段。我希望将此栏位留为空白,以便用户可以输入或扫描该字段中的数字。不幸的是,它默认为0.是否有一个简单的方法来删除0,同时保持字段不为空?从数字文本框中删除默认值0

@Html.EditorFor(model => model.RackNumber, new { id = "RackNumber"}) 

回答

4

更改模型属性类型可空:public int? RackNumber {get;set;}

+0

这样做。谢谢。 – SandSnark 2013-03-27 14:09:00

+0

这是可以的,除非您直接绑定到实体/域类而不是dto或viewmodel,并且该字段不可为空。最好在字段上使用格式字符串,如下所示:[DisplayFormat(ApplyFormatInEditMode = true,DataFormatString =“{0:#。#}”)] – 2016-11-29 14:07:08

2

您可以提供这样的价值属性:

@Html.EditorFor(model => model.RackNumber, new { Value = Model.RackNumber == 0 ? "" : Model.RackNumber.ToString(), id = "RackNumber"}) 
+0

我得到一个“名字‘模式’在目前情况下不存在'错误。 – SandSnark 2013-03-26 20:30:28

+0

我更新了答案。确保value属性是标题大小写后的“Model”。 – 2013-03-26 21:05:29