ASP.NET MVC 2でデータ注釈検証を広範囲に使用しています。この新機能は、クライアント側の検証とサーバー側の検証の両方を1か所で定義できるようになったため、大幅な時間の節約になりました。ただし、詳細なテストを行っているときに、データアノテーションの検証のみに依存している場合、サーバー側の検証をバイパスするのは非常に簡単であることに気付きました。たとえば、プロパティに[Required]属性の注釈を付けて必須フィールドを定義し、その必須フィールドのテキストボックスをフォームに配置した場合、ユーザーはDOMからテキストボックスを削除するだけで済みます(Firebugを使用して簡単に実行できます)。これで、コントローラー内のModelBinding中に、そのプロパティでデータ注釈の検証がトリガーされなくなります。「必要な」検証がトリガーされることを確認するには、
検証に関する皆さんの推奨事項は何ですか?データ注釈の検証は十分ですか?または、すべての状況で検証がトリガーされるように、検証を繰り返す必要がありますか?
フォローアップコメント: 以下の回答に基づくと、モデルバインダーとデータアノテーションの検証だけに頼ることはできないようです。追加のサーバー側検証が必要であると結論付けているので、データアノテーションで定義されているものに基づいてサービスレイヤーが検証をトリガーする簡単な方法はありますか?これにより、両方の単語の長所が得られるようです...検証コードを繰り返す必要はありませんが、Model Binderがトリガーしなくても、検証が確実に実行されるようにします。
このフォローアップコメントは、元の質問とは異なる質問になるため、別の質問として投稿します。