【问题标题】:Pass values for drop-down from business layer, what is best practices?从业务层传递下拉值,最佳实践是什么?
【发布时间】:2014-09-30 10:49:23
【问题描述】:

通常我使用以下类来填写表单上的下拉列表或列表:

class DisplayValue
{
    string Display { get; set; }
    string Value { get; set; }
    bool Selected { get; set; }
}

问题:如果 List of DisplayValue 来自 BusinessLayer 是不是很好的解决方案?人们说“业务层应该返回业务对象,如 Person、Invoice、Contract。但表示层应该准备 ViewModel。”。在这种情况下,我们注定要从 DB 中查询额外的数据。例如,我需要带有以下文本“FirstName LastName,TotalAmount”的下拉菜单。在这种情况下,我注定要从 BL 人员列表和发票列表中查询每个人以在控制器中构建 DisplayValue 列表。

什么是最好的解决方案?

【问题讨论】:

    标签: c# architecture


    【解决方案1】:

    我会考虑在 BL 中添加一个方法,例如 GetNamesAndInvoiceTotal()。你应该做所有的逻辑来总结发票等。防止污染表示层并明确其用途。但是你需要小心,如果更好的结构更合适,你不会让你的 BL 返回DisplayValue 类,只是因为它是你在其他地方所做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-22
      • 2011-12-01
      • 2010-12-24
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      相关资源
      最近更新 更多