4

NHibernateとNHibernate.Validatorで動作するASP.NET MVCプロジェクトがあり、xVal 1.0(最新リリース)を使用したいと思います。 私はプロジェクトに要求されたスクリプトを追加しましたし、Site.Masterでそれを参照:MVC.NETのxValでnHibernate.validatorがクライアントの検証を起動しない

<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> 

は、その後、私は)(Global.asaxのApplication_OnStartでxVal.ActiveRuleProvidersにNHibernateValidatorRulesProviderを追加しました:

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

最後に、ビューで、私は追加しました:

私はJavaScriptで警告が表示されますが、Firefoxでは表示されません。いくつかの無効なフィールドを入力して提出すると、xValは発生しません。ポストバックが代わりに行われ、Serverside検証がデータを処理します。

私は間違っていますか?私はxValサンプルプロジェクトをxVal 1.0で動かすことができました...

//編集:私は正確に私のステートメントを持っています:何かが実際に起こっている:それはポストバックを行い、 (それはサーバー側の検証ではいつもやっているように)、これらのフィールドに何かを書き込むと、色は元の状態に戻ります。しかし、値をもう一度削除しても、Submitをクリックしてフォームがポストバックを行うまで何も起こっていません...もし私がclientsidevalidationコードを削除すると、これは起こりそうにありません。

答えて

2

バリデータがnullを許可していないことを確認してください。MVCはポストバックの空のフィールドに対してフォームを検証していますが、xValはすべての場合にそれをしない可能性があります。

2

解決済み: TextFieldに[Length(1,50)] - Validatorを使用して、値が含まれていることを確認しました。しかし明らかに、xValはこのValidatorを例外として処理しません。フィールドが空であっても、xValはポストバックを許可します。 xValがフィールドが空であるかどうかを確認するには、[NotEmpty()]属性を選択する必要がありました。

+0

更新していただきありがとうございます。 –

関連する問題