[英]how to bind dropdown in 3-tier architecture
如何以專業方式限制下拉列表? 是否需要將DropDown組件傳遞到BAL(業務訪問層)?
請提供一些代碼段和參考鏈接。
我通常在我的業務層中有一個返回自定義類列表的方法(例如:對於State,我將有一個State類,它具有ID,Name,Code等公共屬性),然后將其綁定到下拉列表中清單
List<State> objLstState =new List<State>();
objLstState = StateManager.GetStates(); //This method returns a list of States
if(objLstState!=null && objListState.Count>0)
{
dropDownSchoolState.DataSource = objLstState;
dropDownSchoolState.DataTextField = "Name";
dropDownSchoolState.DataValueField = "ID";
dropDownSchoolState.DataBind();
}
上面的代碼在我的UI層中執行(在aspx頁面的代碼后面)
您可以傳遞包含數據的類的數組..該類應具有公共屬性,以便可以訪問它們並將其綁定到您的dropdownlist ..或需要將數據綁定到哪個控件
UI層必須處理UI操作,這同樣適用於必須處理業務操作的業務層。 如果將DropDown對象發送到業務層,則會違反原則,這只會使代碼更混亂,更難維護且更難以理解。
由於DropDown控件是UI專有的內容,因此建議您從“業務層”請求綁定數據,然后將控件綁定到“ UI層”內部的數據。
簡而言之: 讓層之間的交互處理數據而不是信息 。 視覺控件是一種信息,具有特定用途,交易/包含操作,規則的數據聚合。 客戶列表本身就是客戶列表,純數據,沒有任何規則,操作或任何內容。
沒有下拉列表肯定不需要傳遞到任何較低的層,像BL或服務層之類的較低層應最終由UI(表示層)調用並使用檢索到的數據,可能與數據庫技術或DAL無關數據訪問層中使用的邏輯。
參見以下示例示例的答案: MVC3和實體框架
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.