Asp.net MVC 2.0 DataAnnotations验证不会发出正确的JSON

时间:2009-12-15 20:40:50

标签: asp.net-mvc asp.net-ajax asp.net-mvc-2 jquery-validate data-annotations

我正在尝试使用ASP.Net MVC 2.0 Beta中的DataAnnotations验证程序进行设置,但使用以下模型:

public class Foo {
    [Required] public string Bar {get;set;} 
}

我认为以下代码:

 <%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<Foo>" %>

 <!-- later on -->
 <% Html.EnableClientValidation(); %>
 <% using (Html.BeginForm("Edit","Foo")) { %>             

一切几乎都是逐字逐句的例子。发出的是:

<script type="text/javascript">
//<![CDATA[
EnableClientValidation({"Fields":[],"FormId":"form0"}, null);
//]]>
</script>

没有任何内容可以告诉任何JavaScript验证库(jQuery或MS Ajax,无关紧要)来验证字段。验证 在服务器端发生,但从未在客户端发生,原因很明显。

1 个答案:

答案 0 :(得分:0)

答案有点偷偷摸摸。我found out问题是缺少ValidationMessageFor,即使有ValidationSummary。添加以下内容后:

<%=Html.ValidationMessageFor(x=>x.Bar)%>

发出了正确的JSON并且jQuery验证工作正常。

即使您有验证摘要,但 仍然显示消息似乎很奇怪。