2014-09-30 88 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課程,那僅僅是因爲你在別處做了什麼。