当我们写
时 <appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
引擎盖下发生了什么变化?
我希望它为表单元素的事件添加函数。
答案 0 :(得分:1)
在坚果壳中,它使用Javascript。每个元素都使用指示要执行的验证类型的数据属性进行修饰。提交表单时,会触发javascript并运行通过验证程序标记为要验证的所有元素。
像往常一样,然后在服务器上再次执行相同的验证。
答案 1 :(得分:1)
参考此(非常好的文章):Unobtrusive Client Validation in ASP.NET MVC 3
来自同一地区的一些摘录:
在MVC 3中,我们有一个标志可以打开不引人注目的JavaScript模式,它可以实现不显眼的Ajax和不显眼的客户端验证。默认情况下,不显眼的JavaScript模式是为了与从MVC 1.0和MVC 2升级的项目向后兼容而关闭。但是,我们已经在MVC 3项目模板中启用了它,因此默认情况下新项目将开始使用不显眼的JavaScript支持。此外,您还需要启用客户端验证(默认情况下仍然关闭)。
我们已经用HTML 5兼容属性替换了JSON,这些属性描述了要附加到输入字段的验证器。我们还在验证消息跨度中附加了一些HTML属性,以便它们可以与它们所附加的输入字段相关联。
<label for="FirstName">FirstName</label>
<input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>