验证工作"编辑"但不是"创造" - MVC

时间:2015-10-28 17:15:13

标签: c# validation model-view-controller

我目前在我的模型中有一个数据注释验证要求,但遇到了一个奇怪的问题。

基本上,我正在检查以确保为时间表输入的小时数是正数。它在时间表的编辑视图中完美运行,但是当我转到创建新的时间表条目时,它没有正确验证并且会让时间变为负数

两种观点都使用相同的模型,所以我很困惑为什么会这样。

剪辑模型:

[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>

UPDATE:

我最终逐行查看了这些页面的所有JavaScript,从而弄清了导致此问题的原因。当然这是一个愚蠢的错误。

点击&#34;保存&#34;按下该事件的编辑页面javascript:

if ($("form[name = 'TimeEntryEditForm']").valid()) {...}

虽然该事件的创建页面javascript具有:

if ($('form').valid()) {...}

将其更改为

if ($("form[name = 'TimeEntryCreateForm']").valid()) {...}
解决了这个问题!

感谢大家的帮助和提示!

0 个答案:

没有答案