我试图让使用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,无所谓)来验证字段。验证的的发生在服务器端,但从来没有在客户端上,原因是显而易见的。

有帮助吗?

解决方案

答案是有点偷偷摸摸。我发现的问题是缺乏ValidationMessageFor的,即使是有ValidationSummary。加入以下之后:

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

在适当的JSON被发射和jQuery验证工作。

这似乎很奇怪,你的的有,即使你有验证摘要信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top