1

我試圖讓使用ASP.Net MVC 2.0 Beta版的DataAnnotations驗證設置,但有以下型號:Asp.net MVC 2.0 DataAnnotations驗證不正確發出JSON

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,無所謂)來驗證字段。驗證確實發生在服務器端,但從不在客戶端上,原因很明顯。

+0

注:我試圖使用jQuery驗證適配器。使用MS Ajax仍然會產生 Sys.Mvc.FormValidation.enableClientValidation({「Fields」:[],「FormId」:「form0」},null); 沒有關於所需的屬性。 – Mark 2009-12-15 20:43:27

回答

0

答案有點鬼鬼祟祟。我found out問題是缺乏ValidationMessageFor即使有ValidationSummary。添加以下內容後:

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

正確的JSON發射和jQuery驗證工作。

看起來很奇怪你有消息,即使你有驗證總結。

+0

如果要驗證但不想要消息跨度,請使用Html.Validate()或Html.ValidateFor()。 – Levi 2009-12-15 22:31:19

+0

@Levi謝謝!我會給你一個鏡頭。 – Mark 2009-12-16 13:55:28