2014-09-30 65 views
0

我通常使用下面的类来填充表单上下拉菜单或列表:传递业务层下拉值,什么是最佳实践?

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

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

什么是最佳解决方案?

回答

0

我会考虑在BL中添加一个像GetNamesAndInvoiceTotal()这样的方法。你应该做所有的逻辑来总结发票等。防止污染表示层并清楚表明它的用途。但是如果一个更好的结构更合适,那么你需要小心的是,如果你的BL没有返回DisplayValue课程,那仅仅是因为你在别处做了什么。