の実行中に更新順序を制御する方法はありますTryUpdateModel
か? 他のプロパティを更新するには、1 つのプロパティを有効にする必要がありますが、既定では、もう 1 つのプロパティが更新されているとき、2 番目のプロパティは null のままです。
デフォルトの更新順序は何ですか? 奇妙なことは、私のコードで必要なプロパティがモデルとフォームの両方で最初に宣言されていることです。インターネットでこの実行順序に関する情報を見つけることができません。
の実行中に更新順序を制御する方法はありますTryUpdateModel
か? 他のプロパティを更新するには、1 つのプロパティを有効にする必要がありますが、既定では、もう 1 つのプロパティが更新されているとき、2 番目のプロパティは null のままです。
デフォルトの更新順序は何ですか? 奇妙なことは、私のコードで必要なプロパティがモデルとフォームの両方で最初に宣言されていることです。インターネットでこの実行順序に関する情報を見つけることができません。
TryUpdateModel の実行中に更新順序を制御する方法はありますか?
いいえ、注文を保証することはできません。注文を当てにするべきではありません。これが、モデルが完全にバインドされ、ビュー モデル セッター内ではなく、検証を実行する必要がある理由です。
データ注釈属性を使用することもできますが、(特に条件付きおよびより複雑な検証シナリオに関して) それらがどれほど制限されているかを理解したら、ASP.NET MVC と非常にうまく統合されているFluentValidation.NETに切り替えることができます。これを強くお勧めします。
私の知る限りでは、バインダーはクラスに入力される順序でプロパティを取得します。最後に、GetProperties を実行するのを見ました。それがメソッドのロード方法です。
ただし、これは非公開の実装であるため、当てにしないでください。この種の制約がある場合は、独自の ModelBinder を作成してください。