【发布时间】:2013-01-05 22:55:14
【问题描述】:
我在 Visual Studio 2012(表单身份验证)中使用 ASP.net MVC 4 Web 应用程序模板创建了一个新项目,我想从中删除不显眼的验证。我做了以下更改:
- 更改了 web.config -
add key="UnobtrusiveJavaScriptEnabled" value="false" - 更改了
BundleConfig以删除jquery.validate.unobtrusive.js脚本 - 我更改了
_Layout,以便 jquery/jqueryval 包位于<head>部分。
这些是我所做的唯一更改,但我没有得到任何客户端验证。在 chrome 中检查脚本时,我看到 jquery 和 jquery.validate(不显眼),它没有将不显眼的属性放在我的标记中,但客户端根本不工作。
我还需要做什么/撤消以摆脱不显眼的验证?
编辑
检查标记,这也在我的页面中:
<script type="text/javascript">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[],"FormId":"form0","ReplaceValidationSummary":true,"ValidationSummaryId":"validationSummary"});
//]]>
</script>
【问题讨论】:
-
我明白了,您想保留客户端验证,但删除不显眼的方法? (顺便说一句,有什么原因吗?)
-
@Tommy 除了好奇之外没有什么特别的原因。此外,如果不做一些额外的工作,不显眼的验证似乎不适用于动态添加的表单元素,所以我想看看我是否在常规验证中遇到了同样的问题。
-
如果你想保持客户端验证,你将继续需要为动态添加的字段做更多的工作,不管是否不引人注目。如果您只想正常,POST,返回有错误的视图,那么只要将动态添加的元素添加到表单并与表单一起提交就可以了
-
至于您的问题,我认为删除 jquery validate 和 unobtrusive validate,强制完成 POST 并从服务器返回将解决您的问题。
-
是的,如果可能的话,我想保留客户端验证。我错误地认为这很容易。
标签: c# asp.net-mvc jquery-validate unobtrusive-validation