Html.textbox,整数/小数的默认值为空,而不是0

我正在使用默认的asp.net MVC 2语法为我的asp.net MVC web应用构建整数或十进制文本框:

<%:Html.TextBoxFor(model=>model.Loan.InterestRate)%>

非常直截了当,但问题本质上是我的绑定模型对象是decimal或int且不可为空的,如果我的模型为空(例如在CRUD模板的添加模式中),它们在页面加载时将其值打印为零(0),并且零是一个不正确的值,对于我的页面验证也是无效的

我怎么会有没有起始值的文本框,只是一个空文本框,我知道零是一个潜在值,但我只接受大于零的值,所以这对我来说不是问题

我甚至尝试将其强制转换为可为空的十进制数和非for助手(这并不理想),但遗憾的是,我仍然收到默认的“0”值。有什么想法吗

<%:text框(“Loan.InterestRate”,Model.Loan.InterestRate==0?
(十进制?)空:Model.Loan.InterestRate)%>

在模型中添加DisplayFormat属性

[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“{0:#.#}”)]
十进制利率{get;set;}

看法

@Html.TextBoxFor(model=>model.InterestRate)

此输出为空,而不是0。
这里有更多的格式示例

更新

TextBoxFor不支持格式,但EditorFor可以:

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

更新2

它确实适用于textbox,如下所示:

@Html.TextBoxFor(model=>model.InterestRate,“{0:#.#}”)

发表评论