【发布时间】:2012-01-13 18:54:57
【问题描述】:
我看到了一些其他关于本地化的问题,但这似乎不是这里的问题。
我的 ViewModel 中有 2 个十进制字段
[DisplayName("Standard Hourly Rate")]
public decimal Rate { get; set; }
[Required]
[DisplayName("Daily Travel Rate")]
public decimal TravelRate { get; set; }
在我看来,我有这个:
<div class="editor-label">
@Html.LabelFor(model => model.Rate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Rate)
@Html.ValidationMessageFor(model => model.Rate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TravelRate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TravelRate)
@Html.ValidationMessageFor(model => model.TravelRate)
</div>
这看起来应该没问题,但是每当我提交表单时,都会收到验证错误。如果我提交任何带小数的数字,我被告知该值无效。如果我输入的不是数字,我会被告知它必须是数字。
编辑: HTML 输入如下所示
<input type="text" value="" name="Rate" id="Rate" data-val-required="The Standard Hourly Rate field is required." data-val-number="The field Standard Hourly Rate must be a number." data-val="true" class="text-box single-line">
<input type="text" value="" name="TravelRate" id="TravelRate" data-val-required="The Daily Travel Rate field is required." data-val-number="The field Daily Travel Rate must be a number." data-val="true" class="text-box single-line">
Edit2:控制器只检查 Modelstate.IsValid,然后将其添加到数据库中。
【问题讨论】:
-
渲染的
<input元素是什么样的?能否完整发布,包括 data-val 属性? -
我在其中添加了生成的输入。
标签: c# asp.net-mvc-3 validation decimal viewmodel