2011-12-19 7 views
0

過去3日間、私の頭をレンガの壁にぶつけて、次のシナリオをコーディングしようとしました。これはかなり一般的なシナリオです。これらのテーブルは主キーと次のフィールドを持っているASP.NET MVC 3 - データの注釈とjqueryのコード方法

Primary_Applicant_DetailsPrevious_Applicant_Details

:私は、私は2つのデータベーステーブルを持つデータベース設計者とMVC3に非常に新しいですし、C#

Title  not null 
Forenames not null 
Surname not null 

ビューには、これらのテーブルの両方のフィールドが含まれています(モデルを生成するためにMindscape Lightspeedを使用します)。ただし、ユーザーはプライマリの詳細を入力する必要があります。

ただし、前回の申請者の詳細はオプションです。

したがって、ユーザーが前の応募者の詳細(タイトル、姓や姓など)を入力した場合、ビュー上のこれらのアイテムのすべてを入力する必要があります。

私は前者の申請者の詳細フィールドに「必須」データ注釈を付けることができません。これはビューで必須となるためです。

requiredifデータアノテーションを作成する唯一の方法はありますか?そうであれば、3つすべてのフィールドにある必要があり、他の2つのフィールドが入力されていることを確認する必要があります。つまり、タイトルが入力されている場合は、フォアネームが入力されていれば、あなたの姓と姓が入力されていることを確認してください。

これが正しい場合は、複数のフィールドをチェックする注釈? このシナリオに別の方法がある場合は、私に教えてください。

答えて

0

MVC3にはこのようなものは組み込まれていませんが、this guyには「条件付きで必要な」検証を持つmvc 3検証ツールキットが組み込まれています。

+0

だから、MVC 3は私のシナリオは、より「複雑」であるのに対し、簡単な検証ルールが存在し、「シンプル」のウェブサイトのための唯一の良いように見えるでしょうか?同意しますか? – user1079925

+1

実際、スタックOVerflowはasp.net MVC上に構築されています。あなたが望むすべてのバリデーションを構築するためのフレームワークがあります。それは、組み込みの、箱からの検証は、一般的なケースの80%、複雑なケースの20%をカバーするだけであなた自身のロールバックする必要があります。 –

0

独自のカスタムバリデータを作成する必要があります。 これを行うには、ValidationAttributeクラスから継承し、IsValidメソッドをオーバーライドする必要があります。 IsValidメソッドのためのクールなオーバーロードがあります。これにより、現在のコンテキストにアクセスできるようになり、モデルのすべてのプロパティをチェックして、データベースルックアップを行うことができます。

データ検証のすべての細かい点については、この素晴らしい記事をご覧ください。それはあなたの問題を解決するのに役立ちます。

http://www.diaryofaninja.com/blog/2011/07/19/spelunking-inside-aspnet-mvc-3-model-aware-data-annotations

関連する問題