如何手动添加MVC客户端验证?

How to manually add MVC client-side validation?

提问人:Nathan Childers 提问时间:12/22/2017 更新时间:12/22/2017 访问量:1869

问:

我正在对 MVC 使用 jquery(非侵入式)验证,并且我有一个不属于我模型的字段,所以我宁愿不添加它只是为了给它一些数据注释。

而且,我所需要的只是确保该值等于 100 ...我希望它与其他所有内容一起得到验证。

我读了这篇文章: http://www.blinkingcaret.com/2016/03/23/manually-use-mvc-client-side-validation/

而且,我添加了

data-val=“真”

以及

data-val-equalto=“100”

但这没有用。

<input type="text" name="smtotal" id="SMTotal" class="form-control " readonly="readonly" data-val="true"  data-val-equalto="100"/>
                        <span class="field-validation-valid" data-valmsg-for="smtotal" data-valmsg-replace="true">This must equal 100</span>
Unobtrusive-Validation ASP.NET-MVC-验证

评论


答:

1赞 Racil Hilan 12/22/2017 #1

有几个问题。首先,是放置要显示的错误消息的位置,而不是要与之比较的值。此外,验证器会与另一个字段中的值进行比较,而不是像 100 这样的任意值。您必须在属性中提供其他字段的名称。data-val-equaltoequaltodata-val-equalto-other

要与 100 等固定值进行比较,您可以使用范围验证器,并对最小值和最大值使用相同的值,如下所示:

<input type="text" name="smtotal" id="SMTotal" class="form-control" readonly="readonly"
       data-val="true" data-val-range="This must equal 100"
       data-val-range-min="100" data-val-range-max="100" />
<span class="field-validation-valid" data-valmsg-for="smtotal"
      data-valmsg-replace="true"></span>

请注意,我没有在 中提供消息,因为该消息来自 .如果要将消息放在 中,则必须设置为 。spaninputspandata-valmsg-replacefalse

评论

0赞 Nathan Childers 12/22/2017
是的,这成功了。谢谢你 - 你的回答非常有用。