使用expandoobjects MVC4返回要查看的数据

本文关键字:数据 expandoobjects MVC4 返回 使用 | 更新日期: 2023-09-27 18:21:59

我只是想学习mvc4中的expandoobjects。

我有一个模型说

 pulic class A
 {
   public string FirstName{ get; set; }        
   public string LastName{ get; set; }
   public System.DateTimeOffset DOB {get; set; }
 }

说我有另一个型号的

 pulic class B
 {
   public string JobTitle{ get; set; }        
   public System.DateTimeOffset FromDate { get; set; }
   public System.DateTimeOffset ThruDate {get; set; }
 }

我有每个型号的控制器。现在我将有一个单一的视图来列出模型"a"或模型"B"的所有项目。

我听说我们可以使用expandoobjects来实现这一点,我应该能够将模型"A"或模型"B"的项目列表写入单个视图,并且该视图应该显示其内容。我不知道如何使用expandoobjects开始。

有人能先介绍一下吗?

使用expandoobjects MVC4返回要查看的数据

我甚至不会开始尝试这样做,所需的反射工作量将是可怕的,这是真正的维护噩梦

设置类似的文件夹结构

-Views
    -Shared
         -EditorTemplates
              -TextBox.cshtml
              -SelectList.cshtml
              -DateBox.cshtml

在这些编辑器模板中,按照您希望的方式设置模板,以便添加您在内部开发的所有相关样式或控件。这些将是您的控制模板。

接下来,在每个pocos上,利用UIHint属性,这将帮助Razor决定每个字段使用什么模板。

所以

public class A
{
   [UIHint("TextBox")]
   public string FirstName{ get; set; }   
   [UIHint("TextBox")]     
   public string LastName{ get; set; }
   [UIHint("DateBox")]
   public System.DateTimeOffset DOB {get; set; }
}

现在,当editorformodel开始选择它的模板时,它应该选择您的editortemplates并使用它们。

我不喜欢把poco与ui问题混为一谈,为了清晰起见,我更喜欢更干净的poco和特定的视图,然而,我认为这将节省你努力找出需要输出的内容,并使用mvc 中更多的模板功能