在Asp.netmvc中基于模型动态渲染视图

本文关键字:模型 动态 视图 netmvc Asp 于模型 | 更新日期: 2023-09-27 17:59:31

我有两个域类,一个是FlatClass,另一个是PGClass。基于这两个,我创建了一个ViewModel。如果用户从UI中选择了Flat单选按钮,则FlatClass将被填充,否则,在选择PG单选按钮,PGClass将被填充。在视图中,我使用的是ViewModel。从性能的角度来看,加载并传递他在ViewModel中未选择的其他类的属性是好的,还是我们可以根据条件抑制或删除未选择类的属性。我不想创建两个局部视图,我将如何在单个局部视图中根据控制器对模型的动态选择来渲染UI?

在Asp.netmvc中基于模型动态渲染视图

尽管最佳实践是对模型使用两个不同的局部视图。但是,如果您想用一个局部视图实现这一点,您可以创建一个继承自FlatClass和PGClass的基类。

现在,您可以使用这个新的ViewModel创建单个局部视图。

public class BaseClass
{
   public FlatClass? flat {get; set;}
   public PGClass? pg {get; set;}
}

请注意,这两个对象都可以为NULL,因为您一次只能使用其中一个对象,而另一个对象将为NULL。