1

我正在尝试使用 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,没关系)来验证字段。出于显而易见的原因,验证确实发生在服务器端,但从不在客户端。

4

1 回答 1

0

答案有点偷偷摸摸。我发现问题是ValidationMessageFor即使有ValidationSummary. 添加以下内容后:

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

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

即使您拥有验证摘要,您必须拥有该消息似乎很奇怪。

于 2009-12-15T22:07:38.827 回答