要在列表视图中显示的字段的注释/属性约定?

时间:2015-12-27 21:34:28

标签: asp.net-mvc entity-framework

我想向实体(或实体的属性)添加一个属性,用于描述要在列表视图上下文中显示哪些字段以及按哪种顺序显示。是否存在可以处理此问题的现有Annotation类,还是应该实现自己的?

我想的是:

[ListDisplayFields(new string[]{"Title", "Category", "Updated"})]
public class Article
{

但是我可以考虑添加一些其他功能(列表视图标题可能与项目视图不同等等)尝试过于聪明的属性是不是一个坏主意?

1 个答案:

答案 0 :(得分:1)

  

尝试使用属性过于聪明是不是一个坏主意?

在我看来,这是一个坏主意。您应该为列表视图和单项视图创建单独的视图模型。

当您的项目增长时,您会很快注意到列表视图和单项视图的要求与您的持久实体不同。通常,您只想在单项视图中显示实体属性的子集。另一方面,在列表视图中,您可能需要显示来自不同实体的一些其他信息(例如,当前库存,上个月的总订单)。

您可以使用Automapper及其queryable extensions进行投影,以便在查询中更轻松地查看模型。