2013-02-02 71 views
1

我有一个ViewModel对象,其中包含一个Vehicle类型的属性。此类型是基本类型,可以通过其他类型(例如汽车或卡车)继承。ASP.NET MVC根据模型的类型加载部分视图

现在我的视图绑定到这个ViewModel和Vehicle属性,我想使用部分视图。根据车辆属性的类型,只有这个视图看起来不同。

什么是最好的(最好)的方式来实现呢?我应该直接检查Razor中的类型并加载相应的局部视图吗?这听起来不太聪明....

回答

2

您可以使用编辑器模板。我写了一个example here,其中有一个抽象基本视图模型,并为每个具体的模型类型提供了不同的编辑器模板。因此,基本上不使用局部视图,而是使用编辑器模板,ASP.NET MVC将负责根据视图模型的运行时类型自动呈现正确的模板。