2010-12-10 15 views
3

私たちは2つのデータモデルを持っています:読み取り専用クライアントに行くモデルと変更されたデータを返す "コントロール"モデル。基本的に、彼らは同じであり、すべては彼らにこのようなデータ注釈を持っている:私たちのコミュニケーションのすべてがJsonResultJson()を使用してコントローラのメソッドを経由ASP.NETデータアノテーション:JSONクライアントとの共有方法

// Require nothing but one or more digits 
[RegularExpression(@"^\d+$", ErrorMessage = "*")] 
public string productid {get;set;} 

クライアントはどのようにこれらのデータ注釈を尊重することができますか?具体的には、validateのようなJQueryプラグインが、これらの正規表現、required、rangesなどを自分自身で使用するにはどうすればよいでしょうか?

私たちは、ネストされたコレクション(製品リストリストのような)を持つヘッダーオブジェクトを含むレスポンスを持っています。 Regexがヘッダーに存在し、すべてのフォームフィールドに適用できると考えていました。 しかし、アノテーションをJSON直列化オブジェクトにどのように変換できますか?

答えて

2

thisブログ記事を参照してください。

本質的に、ページに何らかのJSONを出力するMVC HTMLヘルパーメソッド<% Html.EnableClientValidation();%>を呼び出します。次に、各フィールドのデータ注釈をjquery validateに供給する変換メソッドがMicrosoftMvcJQueryValidation.jsにあります。


コメント

の更新あなたはそれがはるかに困難になりますMVCコントロールを使用せずにHTMLFormElementsをレンダリングしている場合。データアノテーションにアクセスするには、おそらくViewData.ModelMetadataを参照する必要があります。

+0

:おそらくいくつかのリンクですここで私はので、私は控えめな検証番目使うことができMVC3 RCに行く検討するカスタムMetaDataProvider(データ属性)

を使用する必要がありますあなたはビューには、つまり、ないaspxのページを作ることができない場合はどうすればいいですか? –

+0

@Dr。ジム - 私はあなたの質問を理解しているか分からない。データ注釈付きモデルに対してデータを検証するか、jsonでデータ注釈を取得しますか?クライアントの検証は、ユーザーの入力を意味します。ビューへの「作成」なしでは、その可能性がわかりません。 –

+0

JQuery Ajax呼び出しを使用してクライアントにデータを持ち込み、Microsoft JQueryテンプレートを使用してコンテンツをレンダリングし、Microsoftデータリンクを使用して配列をフォーム要素にバインドします。どういうわけか、クラスに添付されているRegexを、JQueryがプラグインが(たとえば)使用できることを検証するものに変換する必要があります。 –

関連する問題