2012-02-15 43 views
1

有没有人遇到过不使用MVC3的表单验证?ASP.NET MVC 3数据验证不会触发

我的模型标记后的相关属性,e.g:

public string MyClass{ 
    [Required] 
    public string Name{get;set;} 
} 

的观点也可作为适当的标记:

@Html.TextBoxFor(x=>x.Name) 
@Html.ValidationMessageFor(x=>x.Name) 

然而,验证消息永远不会显示。我可以从生成的HTML中看到它已经放入了用于验证的span标记,但它们被标记为有效而不是错误。似乎模型上的验证没有被调用。任何可能发生这种情况的原因?

回答

1

您是否拥有View的必要验证JavaScript文件?

<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> 

这些或者需要住在View使用的布局(如果使用任何)或View本身。这些JavaScript/jQuery文件是控制客户端验证的东西。

另外,在您的POST方法中,您的Model是否有效(由ModelState.IsValid boolean属性测试)?

+0

我忘记了我在其他地方清除了ModelState – 2012-02-15 15:12:07