不显眼验证与mvc3中提供的默认值有什么区别

时间:2012-05-24 01:01:00

标签: asp.net-mvc-3 forms validation

我一直在阅读很多关于不引人注意的验证的帖子。我试图了解visual studio在空MVC3模板中提供的内容与包含jquery.unobtrusive js文件之间的差异(如果有的话)。目前,这是我在源中的输入看起来像

    <input class="input-validation-error" data-val="true" data-val-required="The Surname field is required." id="Surname" name="Surname" type="text" value="" />

这是不引人注意的验证吗?

3 个答案:

答案 0 :(得分:2)

使用HTML语法中的data-属性,看起来您的页面已启用,可进行不显眼的客户端验证。

使用传统的客户端验证,将在服务器端生成用于验证控件的javascript,并将其与响应中的HTML一起传递给浏览器。 因此,除了HTML内容之外,还会在<![CDATA[ ]]>

中嵌入内联脚本数据

然而,通过不显眼的客户端验证而不是发出内联javascript,它使用HTML5兼容Data attributes ASP.NET MVC 3利用jQuery进行不显眼的客户端验证。 data-属性将从jquery.unobtrusive js

中定义的jQuery函数进行操作

默认情况下,在ASP.NET MVC 3中禁用不显眼模式。要使用此功能,您需要同时启用客户端验证和不引人注目的javascript验证。

这可以在web.config中设置

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

答案 1 :(得分:0)

简短回答是的,看起来你使用不引人注目的验证。要更深入地了解它是什么以及它是如何工作的,请阅读http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

答案 2 :(得分:0)

MVC输出data- *属性,如果查找这些属性,jquery提供实际的客户端实现。

http://completedevelopment.blogspot.com/2011/02/unobstrusive-javascript-in-mvc-3-helps.html