【发布时间】:2012-07-14 21:47:20
【问题描述】:
我有以下实体:
public class Product{
public int ID { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public string SubCategory { get; set; }
}
我最终希望显示一个页面,该页面采用IEnumerable<Product> 并首先按Category 对Products 进行排序 - 然后按SubCategory 对Products 中的每个Category 进行排序。
我的 ViewModel 应该是什么样子?
起初我想出了这样的东西:
public class ProductListViewModel{
public IEnumerable<Product> Products { get; set; }
public IEnumerable<string> Categories { get; set; }
public IEnumerable<string> SubCategories { get; set; }
}
但随后我的控制器变得充满逻辑来提取唯一的Categories 和SubCategories,我无法处理每个Category 具有不同SubCategories 列表的事实。
任何有按类别分类对象经验的人 - 你能告诉我如何干净地处理这种情况吗?我可以完成工作,但我觉得我的代码不必要地草率而不是 DRY。
我还想知道我的 Product 类的结构是否以不恰当的方式处理 Categories/SubCategories - 其他人是否也有同感? (我认为我的类别可能更适合完全作为单独的对象)
【问题讨论】:
-
您希望信息如何显示在视图上?
-
@DarinDimitrov 用户将看到
Categories的列表 - 他们将单击Category并且该Category中所有产品的列表将滑出。现在可见的Products列表将按SubCategory排序。
标签: asp.net-mvc entity-framework dry categories conventions