6

ASP.NET Web サイトの既定のテーマを作成することはできますか?

たとえば、 というテーマがあり、 という"Default"テーマを選択し、には存在しないがテーマには存在"NewTheme"するファイルを参照したとします。"NewTheme""Default"

<asp:image id="img" runat="server" ImageUrl="~/Images/image.jpg" />

"/App_Themes/Default/Images/image.jpg"に存在しない場合、それを取得でき"/App_Themes/NewTheme/Images/image.jpg"ますか?

さらに、CSS クラスが "NewTheme" には存在せず、"Default" には存在する場合、"Default" を使用できますか? 実際、最初にすべてのデフォルトのスタイルを取得してから、「NewTheme」が衝突するものをオーバーライドする方が良いと思います。

"es"ローカリゼーションを選択した場合、キーがファイルに存在しないがwebreference.resx.esファイルに存在するwebreference.resx場合、そこから値を取得するため、グローバル参照がこれと同様に機能することを私は知っています。

特定の画像だけが変更され、特定のスタイルが変更されたさまざまなテーマを想像できるため、これは ASP.NET テーマにとって重要な機能になると思います。すべてのイメージとすべてのスタイルがテーマごとに常に完全に異なるとは想像できません。したがって、この機能がなければ、スタイル/画像を複製することになりますが、私はそれが好きではありません (明らかな理由から!)。

4

2 に答える 2

1

この機能は ASP.NET には組み込まれていません。それでも、かなり簡単に実装できます。

  1. HttpApplication.BeginRequestGlobal.asax またはカスタム HTTP モジュールでイベントをフックします。
  2. 「/App_Themes/NewTheme/」の下の URL でリクエストを探します。
  3. にファイルがHttpRequest.PhysicalPath存在するかどうかを確認します。
  4. ファイルが存在しない場合は、呼び出しHttpContext.RewritePathて、リクエスト URL の「NewTheme」を「Default」に置き換えます。
于 2012-02-08T03:31:34.590 に答える