2011-11-10 15 views
4

MVC 3編集ページでモデルレベルの検証を行う必要があります。 (具体的には、フィールドAまたはフィールドBのいずれかが入力されていることを確認する必要がありますが、両方ではなく両方ではないことを確認する必要があります)。ASP.NET MVC 3:モデルレベルのクライアント側またはリモート検証

サーバー側の検証と同様に、リモート検証を使用するか、重複した検証コードを実装します。どちらでもOKです。

私は、独自のサーバー側モデルレベルの検証を実行する上でいくつかの記事を読んだことがありますが、クライアント側の検証も実装していません。 (モデル・レベルのクライアント側の検証がjQueryの検証で簡単にセットアップできるかどうかは私には分かります)

独自のリモート検証は最初から行います。これは、リモート属性がプロパティレベルのみであるために行う必要があります。

this questionは私と同じですが、本当にオンポイントの唯一のリンクは回答者の言うことを言わないようです。

私の質問:リモートコンポーネントの有無にかかわらず、サーバー+クライアントモデルレベルの検証を実装するのは、比較的簡単で簡単な方法ですか?そして、これを説明する素晴らしいブログ投稿やウェブページがありますか?

答えて

0

同様の質問があります。hereこれは助けになるかもしれませんか?答えは、少なくとも1つのフィールドが入力されていることを検証することですが、答えに与えられた原則があなたが探しているものかもしれないので、必要な検証に合うように答えを変更できるはずです。このソリューションは、サーバー側とクライアント側の両方の検証オプションも提供しています。このソリューションをモジュールまたはプロパティレベルの検証として使用できると思いますか?

また、次の記事hereには、私がリンクしている回答と同様の独自のカスタム検証を作成する方法が記載されています。

これが役に立ちます。

+0

ありがとう!私はこれらを調べます! –

1

私はData Annotation Extention by Scott Kirklandと思っています。 Hereは、彼の拡張について書いたブログ記事です。

コアライブラリは、.NET 4.0プロジェクト(MVC依存関係なし)で使用できるサーバー側の検証属性を提供します。また、簡単にプラグイン可能なクライアント側の検証ライブラリがあり、控えめなjquery検証を使用してASP.NET MVC 3プロジェクトで使用することができます(MVC3に含まれるjavascriptファイルのみが必要です)。

+0

ありがとうございます!しかし...私が知る限り、これらはすべてプロパティレベルの検証です。私は複雑なマルチフィールドの状況に対して、モデルレベルで使用できるものを期待していました。しかし、ありがとう! –

0

もしあなたが正しいとすれば、mvc 3には実際にjqueryクライアント側の検証が含まれています。 まず、モデルレベルのサーバー側の検証のために、あなたはデフォルトを上書きすることができますが(マルチフィールドを伴う)、独自の検証ルールで、このような何かを機能のisValid:

public sealed class PropertyAAttribute : ValidationAttribute 
{ 
    public string propertyBAttribute { get; set; } 
    public override bool IsValid(object value) 
    { 
     // Your validation rule here 
    } 
} 

[PropertyA(propertyBAttribute = "PropertyB")] 
public object PropertyA {get;set;} 
public object PropertyB {get;set;} 

次に、クライアント側に対処するために、あなたは、単に含まjqueryの検証機能を使用することができます。

  var frm = $('#formData'); 

      frm.validate(); 

このように、あなたは、あなたがモデルに定義されたルールに基づいて、クライアント側でエラーメッセージを持っています。 これがあなたが必要としていることを願っています:)

+0

ありがとうございます!私はこれを調べます! –

関連する問題