说我有这样的视图模型
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