私はMVCを初めて使用し、歯が生えるのに問題があります。私は、会社とユーザーのテーブルがいくつかあるプロジェクトに取り組んでいます。各会社は複数のユーザーを持つことができます。両方のフィールドを効果的に単一のビューにマージする登録ビューを作成しました。また、ユーザーを編集するための別のビューと、既存の会社内でユーザーを作成するための別のビューもあります。部分的なビューを使用することは理にかなっているので、UI を 1 か所で更新するだけで済みます。しかし、私は少し問題を抱えています。作成/編集でパーシャルを使用すると、そのまま使用するだけで問題なく動作します
@Html.Partial("UserDetails",Model)
ただし、Register内で使用する場合は、やろうとします
@Html.Partial("UserDetails",Model.AutoFirstUser)
AutoFirstUser は私が作成したプロパティで、ユーザーが存在しない場合は自動的に作成されます。それ以外の場合は、会社の最初のユーザーが返されます。これは、データを単一のビューにマージする最も簡単な方法のように思えました。今考えてみると、モデルとして User を使用し、他のフィールドに User.Firm を使用することもできますが、それでは問題が代わりに FirmDetails 部分ビューに移行するだけです。
とにかく、私が見つけている問題は、ユーザーのフィールドが表示され、適切に検証されているにもかかわらず、フォームをポストバックすると、おそらくモデルが事実上異なる「名前空間にあるため」、モデルに戻る方法が見つからないことです部分ビューはメイン モデルがユーザーであると想定し、登録ビューはそれが企業であると想定するためです。