我试图追查为什么我的ASP.NET MVC 2验证无法正常工作,但我无法找到足够的关于它如何能够做到这一点。
我已按照此useful article by David Hayden中的步骤进行操作,这似乎是目前最好的文档,但实际上并没有发生任何事情。
当我提交到服务器时我得到验证(正如我在预览1中所做的那样,当我向我的模型添加数据注释时)但我没有得到任何客户端验证。
我如何追踪测试?到目前为止,我已经验证了以下明显的事情
我无法轻易看到是什么事情要知道如何调试它的事件。
答案 0 :(得分:10)
这是我所学到的:
最重要的是
如何工作(非常简单的概述)
MISC
如果该控件使用与定义表单的视图不同的模型,那么当我有部分控件时,我似乎无法进行验证。
您不需要使用Html.TextBoxFor或Html.ValidationMessageFor,您可以使用Html.TextBox和Html.ValidationMessage
答案 1 :(得分:3)
为了在客户端验证字段,您必须指定对Html.ValidationMessage / Html.ValidationMessageFor<>的调用。对于该领域(就像David在您链接的教程中所做的那样)在视图中。这实际上是您希望为该字段运行验证的客户端验证逻辑的触发器。
如果在某些情况下您实际上并不希望为每个字段显示验证消息(即使用Html.ValidationMessage),而是希望摘要成为验证错误消息的唯一来源(即使用Html.ValidationSummary),您仍然需要某种方法来“触发”对您希望的特定字段进行验证。这可以通过使用Html.Validate / Html.ValidateFor<>来实现。视图中的方法。这些帮助程序不会呈现任何内容,但只会注册指定的字段以进行客户端验证。
这两个要求都存在,因为您可能不希望客户端验证自动验证模型对象上的每个属性,因为其中一些可能甚至不是您要验证的表单的一部分。