我目前在我的模型中有一个数据注释验证要求,但遇到了一个奇怪的问题。
基本上,我正在检查以确保为时间表输入的小时数是正数。它在时间表的编辑视图中完美运行,但是当我转到创建新的时间表条目时,它没有正确验证并且会让时间变为负数
两种观点都使用相同的模型,所以我很困惑为什么会这样。
剪辑模型:
[Display(Name = "Hours Worked:")]
[Range(0.00, double.MaxValue, ErrorMessage = "Hours must be positive")]
public decimal LineItemHours { get; set; }
剪辑Create.cshtml(验证无效):
<div class="form-group">
@Html.LabelFor(model => model.LineItemHours, new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.TextBoxFor(model => model.LineItemHours, new { @class = "form-control", id = "hoursTotal" })
@Html.ValidationMessageFor(model => model.LineItemHours, "", new { @class = "text-danger" })
</div>
</div>
剪辑Edit.cshtml(验证工作):
<div class="form-group">
@Html.LabelFor(model => model.LineItemHours, new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.TextBoxFor(model => model.LineItemHours, new { @class = "form-control", id = "hoursTotal" })
@Html.ValidationMessageFor(model => model.LineItemHours, "", new { @class = "text-danger" })
</div>
</div>
我最终逐行查看了这些页面的所有JavaScript,从而弄清了导致此问题的原因。当然这是一个愚蠢的错误。
点击&#34;保存&#34;按下该事件的编辑页面javascript:
if ($("form[name = 'TimeEntryEditForm']").valid()) {...}
虽然该事件的创建页面javascript具有:
if ($('form').valid()) {...}
将其更改为
if ($("form[name = 'TimeEntryCreateForm']").valid()) {...}
解决了这个问题!
感谢大家的帮助和提示!