ASP MVC / Sharp-Architecture初心者-ドメインエンティティを入力として取得する方法
-
07-07-2019 - |
質問
しばらくの間、コミュニティの周辺にいた後、新しいプロジェクトのためにシャープアーキテクチャ(およびASP.NET MVC)を試していますが、少し混乱しています。標準のエンティティテンプレート生成に続いて、クラスMessageを作成し、それらをリスト、作成、編集、および削除できます。
Edit(Message)アクションを見ているのですが、入力タイプのMessageがどのように取得されるのかを理解することはできません。 btnSaveをクリックしてフォームを Messages / Edit?id = 1 に送信すると、どうなりますか?これはどこかで定義された規則ですか?もしそうならどこですか?
解決
デフォルトのモデルバインダーが作業を行っています。コントローラーアクションに反映し、リフレクションを介して見つかった引数でオブジェクトの種類を更新し、formcollectionを読み取って、formcollectionのキーを新しいオブジェクトの適切な値に一致させるための解析を試みます。
ビューで完全にフラットではないオブジェクトを表現することが可能であり、デフォルトのモデルバインダーがそれらをしばしば正しくすることができるため、解析と言います。良いユースケースがないため、これを行っていませんが、複数のオブジェクトを渡し、モデルバインダーに「取得」させることができる場合があります。そうでない場合、可能性のあるものを書くことはあまり恐ろしくありません。
他のヒント
強く型付けされたビューを使用すると、フレームワークは自動的に正しい型のオブジェクトを自動的に new
し、すべてのフォーム入力を検査して使用することでコントローラーアクションに渡します対応するプロパティを設定するための少しの反射。