1

当我们写

 <appSettings>
      <add key="ClientValidationEnabled" value="true" />
      <add key="UnobtrusiveJavaScriptEnabled" value="true" />
 </appSettings>

引擎盖下发生了哪些变化?

我希望它为我们的表单元素的事件添加功能。

4

2 回答 2

1

参考这篇(非常好的文章):在 ASP.NET MVC 3 中的非侵入式客户端验证

相同的一些摘录:

在 MVC 3 中,我们有一个单独的标志来打开不显眼的 JavaScript 模式,它同时启用不显眼的 Ajax 和不显眼的客户端验证。为了向后兼容从 MVC 1.0 和 MVC 2 升级的项目,Unobtrusive JavaScript 模式默认关闭。但是,我们在 MVC 3 项目模板中将其打开,因此新项目将默认开始使用 unobtrusive JavaScript 支持。此外,您将需要启用客户端验证(默认情况下保持关闭)。

我们已将 JSON 替换为与 HTML 5 兼容的属性,这些属性描述了要附加到输入字段的验证器。我们还为验证消息跨度附加了一些 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>
于 2013-02-14T12:30:12.870 回答
1

简而言之,它使用 Javascript。每个元素都装饰有数据属性,指示要执行的验证类型。提交表单时,将触发 javascript 并运行所有标记为通过验证器进行验证的元素。

像往常一样,然后在服务器上再次执行相同的验证。

于 2013-02-14T12:14:13.603 回答