我的web.config:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
我没有使用任何客户端验证。
我应该将这些设置为false
还是只删除这两个条目?
答案 0 :(得分:11)
如果您不想要它,请将其设置为false。这样你甚至不必猜测以后的默认值,项目中的其他人可以立即看到关闭它是你的意图。
同时从bundleconfig中删除客户端验证,以防止用户进行不必要的下载。
答案 1 :(得分:9)
Web.config
中有2个不同的设置是耦合的,但不是同义词。
<add key="ClientValidationEnabled" value="false"/>
确定是否启用了客户端验证。如果该值设置为 false ,则模型注释(required, min, max
等)将不会创建客户端属性或行为。
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
确定 ASP.NET 是否将 JQuery 用于客户端异步任务,或原始 的JavaScript 强>
如果UnobtrusiveJavaScriptEnabled=false
,您的客户端验证仍然有效,但会使用原始 JavaScript 而不是 JQuery 强>
使用JQuery而不是JavaScript有什么意义?
某些环境选择不使用 JQuery 。他们有大量定制的UI框架。 JQuery 可能已经以自定义方式使用。或者可以为所有异步增强使用不同的JS库
使用原始JavaScript有什么不利之处?
如果没有 JQuery (UnobtrusiveJavaScriptEnabled),您的 Ajax 帮助程序将无效。
原始 JavaScript 非常混乱,并使用大量内容填充您的标记。 JQuery创建更轻松,更清晰的标记。 (“ 更轻的ajax属性 ”的优势)
您的原始 Javascript 将不那么健壮,效率可能会降低。请注意, ASP.NET JavaScript 库未在3年内发展(早在发布 MVC 3 之前 强>)。
结论:
如果要禁用客户端验证,请设置
<add key="ClientValidationEnabled" value="false"/>
但我建议您将ClientValidationEnabled
设置为true
。如果不使用验证注释装饰模型,框架将不会呈现验证属性。最好打开您的选项并决定每个 查看 / ViewModel 在哪里使用客户端验证。< / p>
我建议不要禁用 UnobtrusiveJavaScriptEnabled 。 ASP.NET MVC框架 使用 JQuery 的方法太多了。这不会禁用客户端验证。
重要提示:请勿删除任何一个条目。如果要禁用一个,只需将其设置为false
即可。通过删除任一条目,您将自己置于框架的默认行为(可能随时间变化)的左右。
答案 2 :(得分:2)
如果您未引用jquery.validate.unobtrusive.js
或从捆绑包中删除它,则将禁用验证。但是,基于web.config参数,@Html
帮助程序生成或不生成此脚本使用的html属性。所以我建议删除脚本并设置ClientValidationEnabled
false
如果您不使用@Ajax
助手,则UnobtrusiveJavaScriptEnabled
值不会产生任何差异。
答案 3 :(得分:2)
不引人注目的设置没问题。
您需要将ClientValidationEnabled
设置为false
。
<configuration>
<appSettings>
<add key="ClientValidationEnabled" value="false"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
</configuration>
希望这有帮助。