どのようにドロップダウンを専門的な方法でバインドする必要がありますか? DropDownコンポーネントをBAL(ビジネスアクセス層)に渡す必要はありますか?
いくつかのコード スニペットと参照リンクを提供してください。
どのようにドロップダウンを専門的な方法でバインドする必要がありますか? DropDownコンポーネントをBAL(ビジネスアクセス層)に渡す必要はありますか?
いくつかのコード スニペットと参照リンクを提供してください。
私は通常、ビジネスレイヤーにカスタムクラスのリストを返すメソッドがあります(例:州の場合、ID、名前、コードなどのパブリックプロパティを持つ州クラスがあります)。次に、それをドロップダウンにバインドしますリスト
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 ページの分離コード) で実行されます。
データを保持するクラスの配列を渡すことができます..クラスにはパブリックプロパティが必要なので、それらにアクセスしてドロップダウンリストにバインドできます..またはデータをバインドする必要があるコントロール
UIレイヤーはUI操作を処理する必要があり、ビジネス操作を処理する必要があるビジネスレイヤーにも同じことが当てはまります。DropDown オブジェクトをビジネス レイヤーに送信すると、コードが煩雑になり、管理が難しくなり、理解が難しくなるだけの原則に違反することになります。
DropDown コントロールは UI 専用に含まれるものであるため、データを「ビジネス レイヤー」からバインドするように要求し、コントロールを「UI レイヤー」内のデータにバインドすることをお勧めします。
簡単に言えば、レイヤー間の相互作用で、情報ではなくデータを処理するようにします。視覚的コントロールは情報であり、非常に具体的な用途、処理/包含操作、ルールを持つデータの集合体です。顧客のリスト自体は、ルールや操作などを一切含まない、単なる顧客のリストであり、純粋なデータです。
いいえ、ドロップダウンを下位レイヤーに渡す必要はありません。BL やサービス レイヤーなどの下位レイヤーは、最終的に UI (プレゼンテーション レイヤー) によって呼び出され、取得したデータを消費する必要があります。データベース テクノロジや DAL には依存しない可能性があります。データ アクセス層で使用されるロジック。
いくつかの例については、この回答を参照してください: MVC3 および Entity Framework