使用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开始。
有人能先介绍一下吗?
我甚至不会开始尝试这样做,所需的反射工作量将是可怕的,这是真正的维护噩梦
设置类似的文件夹结构
-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 中更多的模板功能