我有一个表格列
CurrentFeeUplift decimal(7, 4) -- > 0.0010
EF定义
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:P2}")]
public Nullable<decimal> CurrentFeeUplift { get; set; }
使用剃刀我试图以百分比显示存储在其中的值 - &gt; 0.10%
@Html.EditorFor(model => model.CurrentFeeUplift, new { htmlAttributes = new { @class = "form-control ClientInfo" } })
编辑后保存不起作用,因为提交返回“0.10%”时应返回“0.0010”。所以模型ModelState.IsValid为false
答案 0 :(得分:0)
您无法使用Nullable字段发布“10%”字符串。您应该将CurrentFeeUplift属性更改为string,然后在action方法中使用它:
model.CurrentFeeUplift = ((int)(model.CurrentFeeUplift.Replace('%','')) / 100.0).ToString();
将它保存到数据库之前。
OR
如果您无法更改模型,则应准备javascript代码以在POST调用之前删除“%”符号,但这是一种解决方法。