強く型付けされたビューがあり、コレクション項目を表すコントロール(入力ボックス)を保持しています。たとえば、従業員の詳細を追加するビューの場合、部門名を入力するための可変の入力フィールドセットがあります。これらの入力フィールドは、クライアント側で動的に追加されます。ここでAsp.net MVC 2のコレクション項目にバリデーションを適用する方法
は、これら2つのエンティティのクラス構造である:部門名用
public class Employee
{
public int EmployeeID{get;set;}
public string Name {get;set; }
public IList<Department> DepartmentList{get;set;}
}
public class Deparment {
[Required(ErrorMessage="This is a required Field")]
public string Name {get;set; }
public int ID { get;set; }
}
入力は、動的に生成され、名前が私の今
<input type='text' class='input-choice' id='txtChoice0' name='Department[0].Name' />
を掲示した後、結合モデルを達成するための方法で設定されています質問はどのようにこれにバリデーションを適用すべきですか? Microsoft ValidationはmvcClientValidationMetadataの内部で検証をプッシュしません。なぜなら、ビューロード時にフレームワークがモデルバインディングを認識しないと仮定しているからです。
もっと正確に検証したいものはありますか?また、サーバー側またはクライアント側の検証について話しているか、両方が必要ですか? –
そして、クラスのプロパティにAttributeタグを含めることができますか?[必須(ErrorMessage = "X is required。")] – MikeTWebb
@MikeTWebb:既にそこにあります –