【问题标题】:Remove unobtrusive validation from MVC 4 template从 MVC 4 模板中删除不显眼的验证
【发布时间】:2013-01-05 22:55:14
【问题描述】:

我在 Visual Studio 2012(表单身份验证)中使用 ASP.net MVC 4 Web 应用程序模板创建了一个新项目,我想从中删除不显眼的验证。我做了以下更改:

  1. 更改了 web.config - add key="UnobtrusiveJavaScriptEnabled" value="false"
  2. 更改了 BundleConfig 以删除 jquery.validate.unobtrusive.js 脚本
  3. 我更改了 _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


【解决方案1】:

去掉类似的标签

@Html.ValidationSummary(true)

@Html.ValidationMessageFor(model => model.roleId)

【讨论】:

  • 这些标签没有不显眼就不能工作吗?我想我的印象是他们俩都合作过。我是否也必须手动编写所有验证代码?
  • 如果你想禁用不显眼的验证,删除这些
  • 回答,是的,剃须刀验证是不显眼的 js。关闭不显眼的 js 会杀死 razor 验证...
  • 我也面临同样的问题,我已经删除了这些标签,但我的客户端验证也不起作用。
  • @VimalPatel,你想删除验证并让它继续工作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
  • 2012-06-18
相关资源
最近更新 更多