我有以下设置web.config:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
我没有使用任何客户端验证。
我应该将它们设置为false
还是只删除两个条目都可以?
我有以下设置web.config:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
我没有使用任何客户端验证。
我应该将它们设置为false
还是只删除两个条目都可以?
如果您不想要它,请将其设置为 false。这样,您甚至不必猜测以后的默认设置是什么,项目中的其他人可以立即看到关闭它是您的意图。
还要从 bundleconfig 中删除客户端验证,以防止您的用户进行不必要的下载。
有 2 个不同的设置Web.config
是耦合的,但不是同义词。
<add key="ClientValidationEnabled" value="false"/>
确定是否启用客户端验证。如果该值设置为false,您的模型注释(required, min, max
等)将不会创建客户端属性或行为。
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
确定ASP.NET是否将JQuery用于客户端异步任务或原始JavaScript。
如果UnobtrusiveJavaScriptEnabled=false
,您的客户端验证仍然有效,但将使用 Raw JavaScript over JQuery。
在 JavaScript 上使用 JQuery 有什么意义?
一些环境选择不使用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
. 如果您不使用验证注释来装饰您的模型,则框架将不会呈现验证属性。最好让您的选项保持打开状态,并为每个视图/视图模型决定在哪里使用客户端验证。
我建议不要禁用UnobtrusiveJavaScriptEnabled。ASP.NET MVC Framework使用JQuery的方式太多了。这不会禁用客户端验证。
重要提示:不要删除任何一个条目。如果要禁用一个,只需将其设置为false
. 通过删除任一条目,您将任由框架的默认行为(可能会随着时间而改变)摆布。
不显眼的设置是好的。
您需要设置ClientValidationEnabled
为false
.
<configuration>
<appSettings>
<add key="ClientValidationEnabled" value="false"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
</configuration>
希望这可以帮助。
如果您不引用jquery.validate.unobtrusive.js
或从捆绑包中删除它,则验证将被禁用。但是,根据 web.config 参数,@Html
帮助程序生成或不生成此脚本使用的 html 属性。所以我建议删除脚本并设置为ClientValidationEnabled
false。
如果您不使用@Ajax
帮助程序,则该UnobtrusiveJavaScriptEnabled
值没有任何区别。