0

カスタム ビュー エンジンを使用して、現在の HttpContext に関連付けられているテーマに基づいてビューの検索場所を動的に追加することで、アプリケーションにテーマ サポートを追加しようとしています。

これは、場所が順番に検索され、関連するテーマ フォルダーにビューが存在する場合はそれが使用されるため、未加工のビューでは非常にうまく機能します。

ただし、通常は少なくとも 3 レベルの深さのネストされたレイアウトを多用します(そのため、現在のビューのレイアウトだけを書き換えてもうまくいきません)。アプリケーションのルートからのパス。

たとえば、ビューに次のものが含まれているとします。

@{ Layout = "~Views/Shared/OneColumn.cshtml"; }

私は次のようなものを実装できることを知っています:

@{ Layout = ThemeHelper.GetLayoutPath("OneColumn.cshtml"); }

しかし、可能であれば、私がむしろやりたいことは次のとおりです。

@{ Layout = "OneColumn.cshtml"; }

そして、ビューエンジン、または拡張ポイントに、メインビューに適用されるのと同じルールを使用して、それを最適な一致に解決させます。

何か案は?

4

0 に答える 0