このようなビューモデルがあるとします
class MyView
{
DynamicViewModel MyDynamicViewModel {get; set;}
}
class DynamicViewModel
{
string A {get; set;};
}
実際のビュー マークアップでは、MyView を読み込みます。再利用可能にしたいので、DynamicViewModel の EditorTemple 部分ビューがあり、それ自体にもいくつかの動的要素があります。
また、MyView ページには、MyDynamicViewModel のコンテンツを決定する独自のフォーム要素があります。したがって、ユーザーの入力/クリックに応じて、MyDynamicViewModel は ajax コールバックを介して新しい情報でリロードされます。
これは機能しますが、DynamicViewModel は動的に読み込まれるため、MVC モデル バインダーは、DynamicViewModel の値が MyView.MyDynamicViewModel のモデルに属していることを認識できません。
たとえば、MyDynamicViewModel.A のフォーム値のフォーム ID は「A」になります。しかし、バインドをモデル化するには、次のように MyDynamicViewModel.A にする必要があります。
<input id="MyDynamicViewModel.A" name="MyDynamicViewModel.A" type="text">
しかし、このテンプレートは ajax 経由で読み込まれます (コントローラー メソッドはビューを文字列として返し、javascript はコンテンツで div を更新するだけです)、「所有者」モデル MyView については知りません