4

我有一個ASP.NET MVC項目與NHibernate和NHibernate.Validator一起工作,我想使用xVal 1.0(最新版本)。 我加入了要求腳本項目,並在引用的Site.Master它:MVC.NET與nHibernate.validator xVal不會觸發客戶端驗證

<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.js")%>"></script> 
    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery.validate.js")%>"></script> 
    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/xVal.jquery.validate.js")%>"></script> 

然後,我添加了NHibernateValidatorRulesProvider到Global.asax Application_OnStart()的xVal.ActiveRuleProviders:

xVal.ActiveRuleProviders.Providers.Add(new NHibernateValidatorRulesProvider(ValidatorMode.OverrideXmlWithAttribute)); 

最後,在視圖上,我補充道:

<%= Html.ClientSideValidation<DomainModel.Entities.MyCustomClass>(Prefix) %> 

我在IE中收到JavaScript警告,但在Firefox中沒有收到警告。如果現在輸入一些無效字段並提交這些字段,則xVal不會觸發 - 將創建PostBack,而Serverside驗證會處理數據。

我在做什麼錯?我已經能夠使xVal示例項目運行與xVal 1.0 ...

//編輯:我必須精確我的聲明:事情實際上發生了:它做了一個回傳並將無效字段標記爲紅色(因爲它一直在進行服務器端驗證),但是如果我在這些字段中寫入內容,則顏色會變回正常狀態。但是如果我然後再次刪除該值,直到我單擊提交併且該表單執行回發時纔會發生任何事情......如果我刪除了客戶端驗證代碼,則不會出現這種情況。

回答

2

請確保您的驗證器不允許空值,MVC正在驗證表單中是否存在回發中的空字段,但xVal可能不會在每種情況下都這樣做。

2

求助: 我用TextFields的[Length(1,50)] - Validator來確保它們包含一個值。但顯然,xVal不會像以前那樣處理Validator:xVal允許回發,即使Fields是空的。爲了確保xVal檢查字段是否爲空,我必須選擇[NotEmpty()]屬性!

+0

這是很好的知道,謝謝你的更新。 – 2009-09-22 15:24:09

相關問題