我有一个viewmodel(让我们称之为HouseVM)但它包含另一个viewmodel(KitchenVM)。我已经为KitchenVM创建了一个自定义模型绑定器。现在我正在创建HouseVM模型绑定器。如何在HouseVM模型绑定器中访问我已经为KitchenVM完成的模型绑定?
注意:我看过this post
答案 0 :(得分:0)
选项#1
您可以让HouseVM的模型绑定器继承自KitchenVM的自定义绑定器。这将允许Kitchen VM(或相关)属性的绑定仍然受该绑定器的约束。类似的东西:
public class HouseViewModelBinder : KitchenViewModelBinder
{
protected override void BindProperty( ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor )
{
if (propertyDescriptor.PropertyType == typeof(KitchenVM))
{
base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
}
// bind the other properties here
}
}
选项#2
This post by Jimmy Bogard可能是实现各种自定义模型绑定器的另一种好方法,允许每种类型绑定到其适当的模型。