我正在使用默认的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:#.#}”)