从业务层传递下拉列表的值,什么是最佳实践
本文关键字:什么 最佳 业务 下拉列表 | 更新日期: 2023-09-27 18:25:01
通常我使用以下类来填写表单上的下拉列表:
class DisplayValue
{
string Display { get; set; }
string Value { get; set; }
bool Selected { get; set; }
}
问题是:如果DisplayValue列表来自BusinessLayer,这是一个好的解决方案吗?人们说"业务层应该返回业务对象,比如Person、Invoice、Contract。但表示层应该准备ViewModel。"在这种情况下,我们注定要从DB中查询额外的数据。例如,我需要带有以下文本的下拉列表"FirstName LastName,TotalAmount"。在这种情况下,我注定要从BL人员列表和每个人的发票列表中查询,以在控制器中构建DisplayValue列表。
什么是最好的解决方案?
我会考虑在BL中添加一个方法,比如GetNamesAndInvoiceTotal()。你应该在那里完成所有的发票汇总逻辑。防止污染表示层,并明确其用途。但是,您需要注意的是,如果更好的结构更合适,您不会让BL返回DisplayValue
类,因为这是您在其他地方所做的。