Jimmy Bogardsの投稿を読んで、モデルの表示方法について説明しました。私自身のプロジェクトでは、一度に表示する必要のある情報が非常に多い場所に出くわしました。すべてのフィールドが一度に表示されるフォームなどの入力が必要な画面。
したがって、ビューモデルは次のようになります。
public class FormViewModel
{
public string field1 {get;set;}
public int field2 {get;set;}
public DateTime field3 {get;set;}
public string field4 {get;set;}
...snip
public string field50 {get;set;}
}
これで、フォームにセクションが含まれるようになったため、次のようにビューモデルに少し構造を導入できます。
public class FormViewModelSection1
{
public string field1 {get;set;}
public int field2 {get;set;}
}
public class FormViewModelSection2
{
public DateTime field3 {get;set;}
public string field4 {get;set;}
}
次に、メインビューモデルは次のようになります。
public class FormViewModel
{
public FormViewModelSection1 {get;set;}
public FormViewModelSection2 {get;set;}
}
したがって、より複雑なビューモデルをメインビューに戻します。メインビューは、基本的に、各セクションを委任して、次のようなレンダリング部分を介してレンダリングされます。
<div>
My form
<%: Html.RenderPartial("soemascx", Model.FormViewModelSection1)%>
</div>
または、editorforを使用してコンテンツをレンダリングすることもできます。
私の質問は、ビューモデルの「再構成」が有効なことなのか、それともビューモデルを非常にフラットにすることによって提供される利点のいくつかを元に戻すのかということです。