【问题标题】:Render view dynamically based on model in Asp.net mvc基于Asp.net mvc中的模型动态渲染视图
【发布时间】:2016-05-19 13:22:56
【问题描述】:

我有两个域类,一个是FlatClass,另一个是PGClass。基于这两个,我创建了一个 ViewModel。如果用户从 UI 中选择了 Flat radio button,则 FlatClass 将被填充,否则在选择 PG radio buttonPGClass 将被填充。我正在使用这个 ViewModel。从性能的角度来看,加载和传递他没有在 ViewModel 中选择的其他类的属性是好的,或者我们可以抑制或废弃非根据条件选择班级?? .我不想创建两个局部视图,我将如何在单个局部视图中基于从控制器中动态选择模型来呈现 UI?

【问题讨论】:

  • 请问可以提供示例代码吗?
  • Bellash :实际上这是我需要实现的应用程序场景。所以我现在没有它的代码。
  • 您是否在与单选按钮相同的视图中显示 FlatClassPGClass 的视图(在这种情况下,您需要 javascript/jquery 来响应客户端事件)。
  • 斯蒂芬穆克:是的。在选择相应的单选按钮时,div 将仅在同一视图上附加部分视图。
  • 你可以结合这两个模型或查看这个[链接]stackoverflow.com/questions/24214439/…

标签: c# jquery asp.net-mvc asp.net-mvc-4


【解决方案1】:

虽然最好的做法是在模型中使用两个不同的局部视图。但是如果你想用一个局部视图来实现它,你可以创建一个继承自 FlatClass 和 PGClass 的基类。

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

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

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

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多