从业务层传递下拉值,最佳做法是什么?

时间:2014-09-30 10:49:23

标签: c# architecture

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

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

问题:如果DisplayValue的List来自BusinessLayer,这是一个很好的解决方案吗?人们说"业务层应返回业务对象,如人员,发票,合同。但表示层应该准备ViewModel。"。在这种情况下,我们注定要从DB查询额外的数据。例如,我需要使用以下文本下拉#34; FirstName LastName,TotalAmount"。在这种情况下,我注定要从BL的人员列表和每个人的发票列表中查询,以在控制器中构建DisplayValue列表。

什么是最佳解决方案?

1 个答案:

答案 0 :(得分:0)

我会考虑在BL中添加类似GetNamesAndInvoiceTotal()的方法。你应该在那里总结发票等所有逻辑。防止污染表示层并清楚表明它的用途。但是你需要注意,如果更好的结构更合适,你不会让你的BL返回DisplayValue类,只因为你在其他地方做了什么。