我有一个 ViewModel 对象,其中包含 Vehicle 类型的属性。此类型是基本类型,可以从其他类型(如 Car 或 Truck)继承。
现在我的视图绑定到这个 ViewModel 并且对于 Vehicle 属性,我想使用部分视图。根据 Vehicle 属性的类型,只有这个视图看起来会有所不同。
实现这一目标的最佳(最简洁)方法是什么?我应该直接检查 Razor 中的类型并加载适当的局部视图吗?这听起来不太聪明....
我有一个 ViewModel 对象,其中包含 Vehicle 类型的属性。此类型是基本类型,可以从其他类型(如 Car 或 Truck)继承。
现在我的视图绑定到这个 ViewModel 并且对于 Vehicle 属性,我想使用部分视图。根据 Vehicle 属性的类型,只有这个视图看起来会有所不同。
实现这一目标的最佳(最简洁)方法是什么?我应该直接检查 Razor 中的类型并加载适当的局部视图吗?这听起来不太聪明....
您可以使用编辑器模板。我编写了example here
一个抽象的基本视图模型,并为模型的每种具体类型提供了不同的编辑器模板。所以基本上你可以使用编辑器模板而不是使用部分视图,ASP.NET MVC 将根据你的视图模型的运行时类型自动呈现正确的模板。