次のようなモデル オブジェクトがあるとします。
public class FooModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public bool HasBar { get; set; }
public BarModel Bar { get; set; }
}
public class BarModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public bool HasWidgets { get; set; }
public IEnumerable<WidgetModel> Widgets { get; set; }
}
public class WidgetModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public string Type { get; set; }
public bool Active { get; set; }
}
そのためのビューを作成したいのですがFooModel
、HasBar
入力がチェックされると、の部分ビューが読み込まれBar
、検証が完了します(目立たない)。がチェックされている場合、タイプBar
の項目をフォーム データにHasWidgets
追加するためのインターフェイスを含む部分ビューが読み込まれます。WidgetModel
フォームの送信ボタンがクリックされると、完全なグラフがコントローラーに渡されます。
Editor Templates でこのようなことができると思ったのですが、私のサブオブジェクトはグラフの一部として解析される方法で名前が付けられていません (それらは事後に追加され、それらがより大きなモデルの一部)。
この種のことをサポートするためのメカニズム/パターンはありますか? 少し再帰的であることはわかっていますが、すべてに適切な名前を付けるために車輪を再発明する必要がありますか?