不显眼的验证适用于一个控制器,但不适用于另一个控制器

时间:2012-05-07 23:02:55

标签: jquery asp.net-mvc jquery-validate telerik-mvc unobtrusive-validation

我有两个不同的视图属于两个不同的控制器。第一个控制器的视图与不引人注意的验证工作正常。第二个视图没有。似乎验证插件未运行,因为$.validator.unobtrusiveundefined

在shared _layout文件中,我有以下脚本标记:

<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.19.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

那么为什么第二个视图不能使用不引人注目的验证呢?

更新

在这两种情况下,我都是通过Ajax调用加载表单。我已经验证了主页与破解验证可以支持非ajax加载表单的不显眼验证。

UPDATE2

我终于让它运转了,但它还不是永久性的解决方案。问题的根源是同一页面上的可编辑 Telerik MVC网格。它以某种方式删除/阻止$.validator.unobtrusive在我的ajax加载中使用。

1 个答案:

答案 0 :(得分:1)

我不知道这是否会有所作为,但你能否将每一行更改为以下内容?

<script src="@Url.Content('~/Scripts/jquery-1.7.2.min.js')" type="text/javascript"></script>
<script src="@Url.Content('~/Scripts/jquery-ui-1.8.19.min.js')" type="text/javascript"></script>
<script src="@Url.Content('~/Scripts/jquery.validate.min.js')" type="text/javascript"></script>
<script src="@Url.Content('~/Scripts/jquery.validate.unobtrusive.min.js')" type="text/javascript"></script>
<script src="@Url.Content('~/Scripts/jquery.unobtrusive-ajax.min.js')" type="text/javascript"></script>

这是一个非常小的变化,但@ Url.Contents()中的"已更改为' s。引号可能会在某个时候越过。