Asp.net MVC客户端验证,没有客户验证子项?

时间:2012-02-29 15:23:15

标签: asp.net-mvc validation

我正在使用asp.net mvc 3进行项目,并且已经在几个页面上使用了服务器和客户端验证。它工作正常。但这一次,我有一个特例:

视图中的项目与模型以及某些属性绑定。

一个例子:

public class MyModelView{
   [Required]
   [StringLength(100, MinimumLength = 2)]
   public String Name{get;set;}
   public DetailsObject Details{get;set;}
}
public class DetailsObject{
   [Required]
   [StringLength(100, MinimumLength = 2)]
   public String PropertyOne{get;set;}
   [Required]
   [StringLength(100, MinimumLength = 2)]
   public String PropertyTwo{get;set;}
}

并且在视图中我“绑定了所有元素

@Html.TextBoxFor(m=>m.Name)
@Html.TextBoxFor(m=>m.Details.PropertyOne)
@Html.TextBoxFor(m=>m.Details.PropertyTwo)

问题是我没有得到任何客户端验证。服务器验证仍适用于所有属性。

我的jquery验证不引人注意。你是如何管理的?

1 个答案:

答案 0 :(得分:1)

您应该检查几个地方

web.config应该有那些行

<appSettings>
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
</appSettings>

检查javascripts是否按顺序包含

<script src="/Scripts/jquery-latest.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>

还提醒(因为我没有看到整个视图文件)放置ValidationMessageFor帮助程序以查看验证错误