2

サイトのレイアウトを作成する必要があります。(現在、マスターページに取り組んでいます)。

ただし、ロゴ (ascx) はさまざまな場所にあります: (クエリ文字列値によって決定される場所... )。

ここに画像の説明を入力

  • ascxクエリ文字列によって自分自身をレンダリングする場所を知っている必要があります

また

  • master pageレンダリングする場所を提供する必要がありますか?

参考までに、DIP(依存性反転)によると:

高レベル クラスは低レベル クラスに依存すべきではありません。どちらも抽象化に依存する必要があります

したがって、マスターページの ctor で、レンダリングする場所を ascx ctor に提供する必要があると思います。

この最初のサンプルのように

  • 私は正しいですか?または、より良い方法はありますか?

(ps masterpage も inherits であることは既に知っていusercontrolます)。

4

2 に答える 2

0

はい、マスターページはページ上のユーザーコントロールのレンダリングを担当する必要があります。

したがって、URLパラメータでクラスを変更してdiv内にラップする必要があることを願っています。

于 2012-12-27T12:37:32.263 に答える
0

マスター ページは、周囲の div タグをレンダリングする方法や、html の他の領域への可視性を設定する方法を知っています。.ascx が周囲のコンテキストを知ることは非常に厄介です。

そうは言っても、私は物事をさらに進めます。マスター ページにクエリ文字列値をフェッチさせます。しかし、別のクラス (LogotypeService) にメソッド (GetPosition) を持たせ、その値を取得して意味を理解し、いくつかの列挙型 (LogotypePosition) を返します。何らかの理由でロゴがどこにあるかを知る必要がある場合は、この列挙型をマスター ページによって設定されるプロパティとして持つことができます。

このように、マスターにもコントロールにも、特定の位置にレンダリングする必要がある理由を理解するためのロジックが含まれていません。しかし、彼らはそれを正しい位置に配置するのに十分な情報を持っており、必要に応じてカスタム レンダリングを行うことさえできます。

于 2012-12-27T14:30:51.180 に答える