我有一个视图模型(我们称之为 HouseVM),但它内部包含另一个视图模型(KitchenVM)。我已经为 KitchenVM 创建了一个自定义模型绑定器。现在我正在创建 HouseVM modelbinder。如何访问我已经在 HouseVM 模型绑定器中为 KitchenVM 完成的模型绑定?
注意:我看过这篇文章
我有一个视图模型(我们称之为 HouseVM),但它内部包含另一个视图模型(KitchenVM)。我已经为 KitchenVM 创建了一个自定义模型绑定器。现在我正在创建 HouseVM modelbinder。如何访问我已经在 HouseVM 模型绑定器中为 KitchenVM 完成的模型绑定?
注意:我看过这篇文章
选项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
Jimmy Bogard 的这篇文章可能是实现各种自定义模型绑定器的另一种好方法,允许每种类型绑定到其适当的模型。