次のViewModelがあります(読みやすいようにいくつかのプロパティを表示しています)
public class Contract{
public string Name {get; set;}
public ContractTerm PrpTerm { get; set; }
}
PRP用語モデルはこのようなものです
public class PrpTerm{
public int Id {get; set;}
public string Name {get; set;}
}
モデルの検証では、注釈を挿入するために XML ファイルを使用しています。Name
プロパティを必須として設定し、ContractTerm
検証を指定せずに許可しました (リストのオプション フィールドです)。私の見解では、名前用のテキストボックスと契約期間用の選択リストがあります。
保存しようとすると、ModelState.IsValid
プロパティが false として取得され、PRPTerm.Id
値が必要であることが示されます。null値をintに代入できないためだと理解しています。
これが検証されるのを避ける方法を誰かが知っていますか?
Bind(Exclude アノテーションを使用してみましたが、これによりデータ送信からフィールドが削除され、ユーザーが選択した値を取得できなくなります (発生した場合)。PrpClass で id を null 許容として設定できません。もう 1 つのオプションは、ViewModel に PrpTerm Id を設定することですが、正当な理由でその変更を正当化する必要があります。
何か案が?