いくつかのサブクラスを持つ複雑なビューモデルがあります。簡単な例として、サブクラスが1つあると仮定します。
そのサブクラスは、部分ビューをレンダリングすることによって表示されます。ユーザーは、インターフェイスでそのビューを切り替えて、すべてを完全に非表示にすることができます。
現在、2つの有効な入力オプションがあります。
- ユーザーは部分を非表示にすることを選択し、何も入力しません。すべてを無視する必要があります。
- ユーザーは部分を表示することを選択し、今度はそれを入力する必要があります。一部のフィールドは必須ですが、一部は必須ではありません。
これを処理する良い方法はMVC検証ですか?ポストバックは空の値をポストし、サーバー側のロジックはModelState.IsValidがfalseと表示するため、フィールドを必須としてマークできません。これは、フィールドが欠落しているためです。
もちろん、[必須]属性を失い、自分で手動でチェックを行うことはできますが、同じ結果を得るより良い方法はないかと思いました。