4

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

クライアント側の検証とサーバー側の検証を実行したいと考えています。これは、リモート検証を使用するか、重複する検証コードを実装することを意味します。私はどちらでもOKです。

独自のサーバー側のモデルレベルの検証を展開することに関する多くの投稿を読みましたが、クライアント側の検証の実装も扱っているものはありません。(私にはわかりません -- 誰かが私に教えてくれると確信しています -- モデルレベルのクライアント側の検証が jQuery 検証で簡単にセットアップできるかどうか.)

Remote 属性はプロパティ レベルのみであるため、独自のリモート検証をゼロから実装する方法についても読みました。

私はこの質問を読みましたが、これは私のものと同じですが、本当に適切な唯一のリンクは、回答者が言っていることを言っていないようです。

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

4

3 に答える 3

1

Scott Kirkland による Data Annotation Extentionはまさにあなたが望んでいることだと思います 。これは、彼が拡張機能について書いたブログ投稿です。

コア ライブラリは、任意の .NET 4.0 プロジェクトで使用できるサーバー側の検証属性を提供します (MVC 依存なし)。目立たない jquery 検証を使用して ASP.NET MVC 3 プロジェクトで使用できる、簡単にプラグインできるクライアント側検証ライブラリもあります (MVC3 に含まれる JavaScript ファイルのみが必要です)。

于 2011-11-10T20:48:53.497 に答える
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();

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

于 2011-11-10T23:25:22.747 に答える
0

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

さらに、リンク先の回答で提供されているものと同様の独自のカスタム検証を作成する方法を詳しく説明している次の記事もあります。

お役に立てれば。

于 2011-11-11T00:15:29.290 に答える