我试图使用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验证(标准),但我不确定它是否按预期工作。例如,这似乎不正确,因为它使用百分比符号:
这应该格式化为100%,但它只是1 ...
格式实际执行任何操作的唯一时间是最初加载表单时:
这是打算吗?或者我做错了吗?还是我要求太多了?您知道网站上那些超酷的字段会在您键入时自动格式化您的内容吗?我希望在用户输入时附加百分比,然后在表单提交时将其转换回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>
谢谢!