0

我只是想在 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 开始。

有人可以开始吗?

4

1 回答 1

1

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

设置这样的文件夹结构

-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 开始选择它的模板时,它应该选择您的编辑器模板并使用它们。

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

于 2013-07-11T08:29:52.493 回答