@ Html.EditorFor百分比显示并保存

时间:2015-02-12 12:37:42

标签: c# asp.net-mvc razor

我有一个表格列

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

1 个答案:

答案 0 :(得分:0)

您无法使用Nullable字段发布“10%”字符串。您应该将CurrentFeeUplift属性更改为string,然后在action方法中使用它:

model.CurrentFeeUplift = ((int)(model.CurrentFeeUplift.Replace('%','')) / 100.0).ToString();

将它保存到数据库之前。

OR

如果您无法更改模型,则应准备javascript代码以在POST调用之前删除“%”符号,但这是一种解决方法。