現在、私のプロジェクトでは、使用する配色のために赤と青と呼ばれる2つのマスターページがあります。子ページの呼び出し方法に応じて、どちらかのページが使用されます。約40の子ページが完成しました。
グローバル変数 (Request.ServerVariables["SERVER_NAME"]) を子ページに渡す必要があるため、ホスト ヘッダーによってどのサーバー上にいるかを知ることができます。
子ページは赤または青のマスター ページを動的に使用するため、それぞれのクラスの名前空間は同じである必要があります。.net はこの 2 つを区別できないため、コンパイル時に競合が発生します。
私の最初の試みは、使用しているサイト ライブラリでこれを設定することでしたが、HTTP 要求変数は cs ファイルの範囲外にあり、DNS 名は同じ IIS インスタンス上にあるため機能しません。
オプション 1 は、赤と青の上にマスター ページを追加することですが、赤と青のページの CSS とコントロールを処理する方法がわかりません。(R と B には、Head、Title、および Form の 3 つのコンテンツ タグがあります)。次に、最上位のマスター変数の内容を子 aspx ページに取得する方法の問題があります。
オプション 2 は Data MasterPage を Red と Blue の下に配置しますが、どのトップ レベル ページを使用するかを子ページに伝える方法がわかりません (現在、if (Querystring !=null) によって選択されています)。
最終結果は次のとおりです。
- ユーザーは、server1.ourservers.loc から Child.aspx を開きます。
- Red Master は、ページのレンダリングに使用されます
- "server1" がマスター ページから取得され、child.aspx がデータを WebService A に送信します。
また
- ユーザーは、server2.ourservers.loc から Child.aspx を開きます。
- Blue Master は、ページのレンダリングに使用されます
- "server2" がマスター ページから取得され、child.aspx がデータを WebService B に送信します。
いかなる状況においても、server1 が WebService B に投稿したり、server2 が WebService A に投稿したりすることはできません
考え?これより簡単な方法はありますか?