2012-02-29 165 views
1

我对一个项目使用了asp.net mvc 3,并且已经在几个页面上使用了服务器和客户端验证。它工作正常。但这一次,我有一个特殊情况:Asp.net MVC客户端验证,没有客户端验证的子项?

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

一个例子:

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 validate不引人注意,包括你如何管理?

回答

1

有几个地方,你应该检查

web.config中应该有这些线路

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

检查的JavaScript将包含在正确的顺序

<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帮手看到验证错误

+0

对不起,其实我只是错过了CSS。它在其他页面上“工作”,因为在其他页面上我需要确认消息,所以我得到了一个视觉反馈。 – J4N 2012-03-01 07:02:05