ASP.NET MVC数据注释格式化@ Html.EditorFor百分比

时间:2016-09-28 22:20:22

标签: c# jquery asp.net-mvc razor data-annotations

我试图使用razor和asp.net mvc为用户创建一个好的输入字段。它应该被格式化为具有两个小数位的百分比。我有这些属性:

    [Display(Name = "Upside strike")]
    [DisplayFormat(DataFormatString = "{0:P2}", ApplyFormatInEditMode = true)]
    [Range(1, 2, ErrorMessage = "Upside strike must be between 100% and 200% ")]
    public decimal CallPercentStrike { get; set; }

我使用jQuery验证(标准),但我不确定它是否按预期工作。例如,这似乎不正确,因为它使用百分比符号:

enter image description here

这应该格式化为100%,但它只是1 ...

enter image description here

格式实际执行任何操作的唯一时间是最初加载表单时:

enter image description here

这是打算吗?或者我做错了吗?还是我要求太多了?您知道网站上那些超酷的字段会在您键入时自动格式化您的内容吗?我希望在用户输入时附加百分比,然后在表单提交时将其转换回1到2之间的小数:)

编辑:这是对EditorFor的调用:

<div class="form-group">
@Html.LabelFor(m => Model.CallPercentStrike, new { @class = "control-label col-md-2" })
<div class="col-md-10">
    @Html.EditorFor(model => model.CallPercentStrike, new { htmlAttributes = new { @class = "form-control", placeholder="Enter as decimal", type="number"} })
    @Html.ValidationMessageFor(model => model.CallPercentStrike, "", new { @class = "text-danger" })
</div>

谢谢!

0 个答案:

没有答案